summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdipudi Praveena <padipudi@padipudi.(none)>2011-05-11 16:43:59 +0530
committerAdipudi Praveena <padipudi@padipudi.(none)>2011-05-11 16:43:59 +0530
commitfe3f343572b55b95ff456eb11dd3211ade8a285b (patch)
treee199437f9486725969ac129d53a6bf112527dd7d
parenta8381d77fd8ba4fece06a51b2d278f11c6a28157 (diff)
Modified and commented the code
-rwxr-xr-xbin/keystone2
-rw-r--r--keystone/auth_protocols/auth_basic.py8
-rw-r--r--keystone/common/config.py2
-rw-r--r--keystone/db/sqlalchemy/api.py250
-rw-r--r--keystone/db/sqlalchemy/session.py8
-rw-r--r--keystone/logic/types/atom.py16
-rw-r--r--keystone/logic/types/fault.py14
-rw-r--r--keystone/logic/types/tenant.py30
-rw-r--r--keystone/logic/types/user.py104
-rwxr-xr-xkeystone/server.py47
-rwxr-xr-xkeystone/version.py6
11 files changed, 240 insertions, 247 deletions
diff --git a/bin/keystone b/bin/keystone
index 6407f8a0..895776b6 100755
--- a/bin/keystone
+++ b/bin/keystone
@@ -186,7 +186,7 @@ if __name__ == '__main__':
sys.exit(msg)
if command == 'start':
- do_start(server,options, args)
+ do_start(server, options, args)
if command == 'stop':
do_stop(server, options, args)
diff --git a/keystone/auth_protocols/auth_basic.py b/keystone/auth_protocols/auth_basic.py
index 17f2261a..a7c317df 100644
--- a/keystone/auth_protocols/auth_basic.py
+++ b/keystone/auth_protocols/auth_basic.py
@@ -94,8 +94,8 @@ class AuthProtocol(object):
# return 401 indicating we need Basic Auth credentials.
return HTTPUnauthorized("Authentication required",
[('WWW-Authenticate',
- 'Basic realm="Use guest/guest"')]
- )(env, start_response)
+ 'Basic realm="Use guest/guest"')])\
+ (env, start_response)
else:
# Claims were provided - validate them
import base64
@@ -108,8 +108,8 @@ class AuthProtocol(object):
# Reject request (or ask for valid claims)
return HTTPUnauthorized("Authentication required",
[('WWW-Authenticate',
- 'Basic realm="Use guest/guest"')]
- )(env, start_response)
+ 'Basic realm="Use guest/guest"')])\
+ (env, start_response)
else:
# Claims are valid, forward request
_decorate_request_headers("X_IDENTITY_STATUS", "Invalid",
diff --git a/keystone/common/config.py b/keystone/common/config.py
index 47a482d6..a524498e 100644
--- a/keystone/common/config.py
+++ b/keystone/common/config.py
@@ -218,7 +218,7 @@ def find_config_file(options, args):
# For debug only
config_file = os.path.join(POSSIBLE_TOPDIR, 'etc', \
'keystone.conf')
- print "Running server from %s " % config_file
+ print "Running server from %s " % config_file
return os.path.join(POSSIBLE_TOPDIR, 'etc', \
'keystone.conf')
diff --git a/keystone/db/sqlalchemy/api.py b/keystone/db/sqlalchemy/api.py
index 4c8a59a3..af91a2c5 100644
--- a/keystone/db/sqlalchemy/api.py
+++ b/keystone/db/sqlalchemy/api.py
@@ -17,7 +17,7 @@
from session import get_session
-from sqlalchemy.orm import joinedload,aliased
+from sqlalchemy.orm import joinedload, aliased
import models
@@ -41,21 +41,21 @@ def tenant_get_all(session=None):
return session.query(models.Tenant).all()
-def tenant_get_page(marker,limit,session=None):
+def tenant_get_page(marker, limit, session=None):
if not session:
session = get_session()
if marker:
return session.query(models.Tenant).filter("id>:marker").params(\
- marker = '%s' % marker).order_by\
- (models.Tenant.id.desc()).limit(limit).all()
+ marker='%s' % marker).order_by(\
+ models.Tenant.id.desc()).limit(limit).all()
else:
return session.query(models.Tenant).order_by(\
models.Tenant.id.desc()).limit(limit).all()
#return session.query(models.Tenant).all()
-def tenant_get_page_markers(marker,limit,session=None):
+def tenant_get_page_markers(marker, limit, session=None):
if not session:
session = get_session()
first = session.query(models.Tenant).order_by(\
@@ -63,38 +63,38 @@ def tenant_get_page_markers(marker,limit,session=None):
last = session.query(models.Tenant).order_by(\
models.Tenant.id.desc()).first()
if marker is None:
- marker=first.id
- next=session.query(models.Tenant).filter("id > :marker").params(\
- marker = '%s' % marker).order_by(\
+ marker = first.id
+ next = session.query(models.Tenant).filter("id > :marker").params(\
+ marker='%s' % marker).order_by(\
models.Tenant.id).limit(limit).all()
- prev=session.query(models.Tenant).filter("id < :marker").params(\
- marker = '%s' % marker).order_by(\
+ prev = session.query(models.Tenant).filter("id < :marker").params(\
+ marker='%s' % marker).order_by(\
models.Tenant.id.desc()).limit(int(limit)).all()
if len(next) == 0:
- next=last
+ next = last
else:
for t in next:
- next=t
+ next = t
if len(prev) == 0:
- prev=first
+ prev = first
else:
for t in prev:
- prev=t
+ prev = t
if prev.id == marker:
prev = None
else:
- prev=prev.id
+ prev = prev.id
if next.id == last.id:
next = None
else:
next = next.id
- return (prev,next)
+ return (prev, next)
def tenant_is_empty(id, session=None):
if not session:
session = get_session()
- a_user = session.query(models.UserTenantAssociation).filter_by(
+ a_user = session.query(models.UserTenantAssociation).filter_by(\
tenant_id=id).first()
if a_user != None:
return False
@@ -113,7 +113,7 @@ def tenant_update(id, values, session=None):
tenant_ref.save(session=session)
-def tenant_group_is_empty( id, session=None):
+def tenant_group_is_empty(id, session=None):
if not session:
session = get_session()
a_user = session.query(models.UserGroupAssociation).filter_by(
@@ -123,6 +123,7 @@ def tenant_group_is_empty( id, session=None):
return True
+
def tenant_delete(id, session=None):
if not session:
session = get_session()
@@ -141,64 +142,69 @@ def tenant_group_create(values):
def tenant_group_get(id, tenant, session=None):
if not session:
session = get_session()
- result = session.query(models.Group).filter_by(id=id, tenant_id=tenant).first()
+ result = session.query(models.Group).filter_by(id=id, \
+ tenant_id=tenant).first()
return result
-def tenant_group_get_page(tenantId, marker,limit,session=None):
+
+def tenant_group_get_page(tenantId, marker, limit, session=None):
if not session:
session = get_session()
if marker:
return session.query(models.Group).filter("id>:marker").params(\
- marker = '%s' % marker).filter_by(\
- tenant_id=tenantId).order_by\
- (models.Group.id.desc()).limit(limit).all()
+ marker='%s' % marker).filter_by(\
+ tenant_id=tenantId).order_by(\
+ models.Group.id.desc()).limit(limit).all()
else:
return session.query(models.Group).filter_by(tenant_id=tenantId)\
.order_by(models.Group.id.desc()).limit(limit).all()
#return session.query(models.Tenant).all()
-def tenant_group_get_page_markers(tenantId, marker,limit,session=None):
+def tenant_group_get_page_markers(tenantId, marker, limit, session=None):
if not session:
session = get_session()
- first = session.query(models.Group).filter_by(tenant_id=tenantId).order_by(\
- models.Group.id).first()
- last = session.query(models.Group).filter_by(tenant_id=tenantId).order_by(\
- models.Group.id.desc()).first()
-
+ first = session.query(models.Group).filter_by(\
+ tenant_id=tenantId).order_by(\
+ models.Group.id).first()
+ last = session.query(models.Group).filter_by(\
+ tenant_id=tenantId).order_by(\
+ models.Group.id.desc()).first()
+
if first is None:
- return (None,None)
+ return (None, None)
if marker is None:
marker = first.id
- next=session.query(models.Group).filter("id > :marker").params(\
- marker = '%s' % marker).filter_by(\
+ next = session.query(models.Group).filter("id > :marker").params(\
+ marker='%s' % marker).filter_by(\
tenant_id=tenantId).order_by(\
models.Group.id).limit(limit).all()
- prev=session.query(models.Group).filter("id < :marker").params(\
- marker = '%s' % marker).filter_by(\
+ prev = session.query(models.Group).filter("id < :marker").params(\
+ marker='%s' % marker).filter_by(\
tenant_id=tenantId).order_by(\
models.Group.id.desc()).limit(int(limit)).all()
if len(next) == 0:
- next=last
+ next = last
else:
for t in next:
- next=t
+ next = t
if len(prev) == 0:
- prev=first
+ prev = first
else:
for t in prev:
- prev=t
+ prev = t
if prev.id == marker:
prev = None
else:
- prev=prev.id
+ prev = prev.id
if next.id == last.id:
next = None
else:
next = next.id
- return (prev,next)
+ return (prev, next)
+
def tenant_group_update(id, tenant_id, values, session=None):
if not session:
@@ -209,18 +215,19 @@ def tenant_group_update(id, tenant_id, values, session=None):
tenant_ref.save(session=session)
-def tenant_group_delete(id,tenant_id, session=None):
+def tenant_group_delete(id, tenant_id, session=None):
if not session:
session = get_session()
with session.begin():
- tenantgroup_ref = tenant_group_get(id,tenant_id, session)
+ tenantgroup_ref = tenant_group_get(id, tenant_id, session)
session.delete(tenantgroup_ref)
+
def user_get_by_group(user_id, group_id, session=None):
if not session:
session = get_session()
- result = session.query(models.UserGroupAssociation).filter_by(
- group_id=group_id, user_id=user_id).first()
+ result = session.query(models.UserGroupAssociation).filter_by(\
+ group_id=group_id, user_id=user_id).first()
return result
@@ -239,7 +246,6 @@ def user_tenant_group_delete(id, group_id, session=None):
session.delete(usertenantgroup_ref)
-
def user_create(values):
user_ref = models.User()
user_ref.update(values)
@@ -250,16 +256,16 @@ def user_create(values):
def user_get(id, session=None):
if not session:
session = get_session()
- result = session.query(models.User).options(joinedload('groups')).options(
- joinedload('tenants')).filter_by(id=id).first()
+ result = session.query(models.User).options(joinedload('groups')).options(\
+ joinedload('tenants')).filter_by(id=id).first()
return result
def user_groups(id, session=None):
if not session:
session = get_session()
- result = session.query(models.Group).filter_by(
- user_id=id)
+ result = session.query(models.Group).filter_by(\
+ user_id=id)
return result
@@ -271,24 +277,27 @@ 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(
+ 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(
+ 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(
+ 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):
+
+
+def users_tenant_group_get_page_markers(group_id, marker, limit, session=None):
if not session:
session = get_session()
uga = aliased(models.UserGroupAssociation)
@@ -303,13 +312,13 @@ def users_tenant_group_get_page_markers(group_id, marker,limit,session=None):
(uga, uga.user_id == user.id)).\
filter(uga.group_id == group_id).\
filter("id > :marker").params(\
- marker = '%s' % marker).order_by(\
+ marker='%s' % marker).order_by(\
user.id).limit(limit).all()
- prev= session.query(user).join(
+ prev = session.query(user).join(\
(uga, uga.user_id == user.id)).\
filter(uga.group_id == group_id).\
filter("id < :marker").params(\
- marker = '%s' % marker).order_by(\
+ marker='%s' % marker).order_by(\
user.id.desc()).limit(int(limit)).all()
if len(next) == 0:
next = last
@@ -324,7 +333,7 @@ def users_tenant_group_get_page_markers(group_id, marker,limit,session=None):
if prev.id == marker:
prev = None
else:
- prev=prev.id
+ prev = prev.id
if next.id == last.id:
next = None
else:
@@ -342,85 +351,32 @@ def group_get(id, session=None):
def group_users(id, session=None):
if not session:
session = get_session()
- result = session.query(models.User).filter_by(
+ result = session.query(models.User).filter_by(\
group_id=id)
return result
-"""
-def users_tenant_group_get_page(group_id, marker,limit,session=None):
- if not session:
- session = get_session()
-
- if marker:
- return session.query(models.User).filter_by(\
- group_id=group_id).filter("id>:marker").params(\
- marker = '%s' % marker).order_by\
- (models.User.id.desc()).limit(limit).all()
- else:
- return session.query(models.User).filter_by(\
- group_id=group_id).order_by(\
- models.User.id.desc()).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_all(session=None):
if not session:
session = get_session()
result = session.query(models.Group)
return result
-def group_get_page(marker,limit,session=None):
+
+def group_get_page(marker, limit, session=None):
if not session:
session = get_session()
if marker:
return session.query(models.Group).filter("id>:marker").params(\
- marker = '%s' % marker).order_by\
- (models.Group.id.desc()).limit(limit).all()
+ marker='%s' % marker).order_by(\
+ models.Group.id.desc()).limit(limit).all()
else:
return session.query(models.Group).order_by(\
models.Group.id.desc()).limit(limit).all()
-
-def group_get_page_markers(marker,limit,session=None):
+def group_get_page_markers(marker, limit, session=None):
if not session:
session = get_session()
first = session.query(models.Group).order_by(\
@@ -428,32 +384,32 @@ def group_get_page_markers(marker,limit,session=None):
last = session.query(models.Group).order_by(\
models.Group.id.desc()).first()
if marker is None:
- marker=first.id
- next=session.query(models.Group).filter("id > :marker").params(\
- marker = '%s' % marker).order_by(\
+ marker = first.id
+ next = session.query(models.Group).filter("id > :marker").params(\
+ marker='%s' % marker).order_by(\
models.Group.id).limit(limit).all()
- prev=session.query(models.Group).filter("id < :marker").params(\
- marker = '%s' % marker).order_by(\
+ prev = session.query(models.Group).filter("id < :marker").params(\
+ marker='%s' % marker).order_by(\
models.Group.id.desc()).limit(int(limit)).all()
if len(next) == 0:
- next=last
+ next = last
else:
for t in next:
- next=t
+ next = t
if len(prev) == 0:
- prev=first
+ prev = first
else:
for t in prev:
- prev=t
+ prev = t
if prev.id == marker:
prev = None
else:
- prev=prev.id
+ prev = prev.id
if next.id == last.id:
next = None
else:
next = next.id
- return (prev,next)
+ return (prev, next)
def group_delete(id, session=None):
@@ -493,24 +449,28 @@ def token_for_user(user_id, session=None):
user_id=user_id).order_by("expires desc").first()
return result
+
def user_tenant_create(values):
user_tenant_ref = models.UserTenantAssociation()
user_tenant_ref.update(values)
user_tenant_ref.save()
return user_tenant_ref
+
def user_get_update(id, session=None):
if not session:
session = get_session()
result = session.query(models.User).filter_by(id=id).first()
return result
+
def user_get_email(email, session=None):
if not session:
session = get_session()
result = session.query(models.User).filter_by(email=email).first()
return result
+
def users_get_by_tenant_get_page(tenant_id, marker, limit, session=None):
if not session:
session = get_session()
@@ -529,7 +489,9 @@ def users_get_by_tenant_get_page(tenant_id, marker, limit, session=None):
filter(uta.tenant_id == tenant_id).order_by(
user.id).limit(limit).all()
-def users_get_by_tenant_get_page_markers(tenant_id, marker, limit, session=None):
+
+def users_get_by_tenant_get_page_markers(tenant_id, marker, limit,\
+ session=None):
if not session:
session = get_session()
uta = aliased(models.UserTenantAssociation)
@@ -544,19 +506,21 @@ def users_get_by_tenant_get_page_markers(tenant_id, marker, limit, session=None)
order_by(user.id.desc()).first()
if marker is None:
marker = first.id
- next, nextuta = session.query(user, uta).join((uta, uta.user_id == user.id)).\
+ next, nextuta = session.query(user, uta).join((uta,
+ uta.user_id == user.id)).\
filter(uta.tenant_id == tenant_id).\
filter("id >= :marker").params(
marker='%s' % marker).order_by(
user.id).limit(int(limit) + 1).all()
- prev, prevuta = session.query(user, uta).join((uta, uta.user_id == user.id)).\
+ prev, prevuta = session.query(user, uta).join((uta, \
+ uta.user_id == user.id)).\
filter(uta.tenant_id == tenant_id).\
filter("id < :marker").params(
marker='%s' % marker).order_by(
user.id.desc()).limit(int(limit)).all()
next_len = len(next)
prev_len = len(prev)
-
+
if next_len == 0:
next = last
else:
@@ -577,6 +541,7 @@ def users_get_by_tenant_get_page_markers(tenant_id, marker, limit, session=None)
next = next.id
return (prev, next)
+
def user_groups_get_all(user_id, session=None):
if not session:
session = get_session()
@@ -587,13 +552,14 @@ def user_groups_get_all(user_id, session=None):
filter(uga.user_id == user_id).order_by(
group.id).all()
+
def groups_get_by_user_get_page(user_id, marker, limit, session=None):
if not session:
session = get_session()
uga = aliased(models.UserGroupAssociation)
group = aliased(models.Group)
if marker:
- return session.query(group, uga).join(
+ return session.query(group, uga).join(\
(uga, uga.group_id == group.id)).\
filter(uga.user_id == user_id).\
filter("id>=:marker").params(
@@ -604,6 +570,8 @@ def groups_get_by_user_get_page(user_id, marker, limit, session=None):
join((uga, uga.group_id == group.id)).\
filter(uga.user_id == user_id).order_by(
group.id).limit(limit).all()
+
+
def groups_get_by_user_get_page_markers(user_id, marker, limit, session=None):
if not session:
session = get_session()
@@ -626,7 +594,6 @@ def groups_get_by_user_get_page_markers(user_id, marker, limit, session=None):
marker='%s' % marker).order_by(
group.id).limit(int(limit)).all()
-
prev = session.query(group, uga).join(
(uga, uga.group_id == group.id)).\
filter(uga.user_id == user_id).\
@@ -635,7 +602,7 @@ def groups_get_by_user_get_page_markers(user_id, marker, limit, session=None):
group.id).limit(int(limit) + 1).all()
next_len = len(next)
prev_len = len(prev)
-
+
if next_len == 0:
next = last
else:
@@ -664,40 +631,41 @@ def user_delete(id, session=None):
user_ref = user_get(id, session)
session.delete(user_ref)
+
def user_get_by_tenant(id, tenant_id, session=None):
if not session:
session = get_session()
- user_tenant = session.query(models.UserTenantAssociation).filter_by(
+ user_tenant = session.query(models.UserTenantAssociation).filter_by(\
tenant_id=tenant_id, user_id=id).first()
return user_tenant
+
def user_get_by_group(id, session=None):
if not session:
session = get_session()
user_group = session.query(models.Group).filter_by(tenant_id=id).all()
return user_group
+
def user_delete_tenant(id, tenant_id, session=None):
if not session:
session = get_session()
with session.begin():
user_tenant_ref = user_get_by_tenant(id, tenant_id, session)
- print user_tenant_ref
session.delete(user_tenant_ref)
- user_group_ref = user_get_by_group(tenant_id,session)
- print user_group_ref
+ user_group_ref = user_get_by_group(tenant_id, session)
if user_group_ref is not None:
for user_group in user_group_ref:
group_users=session.query(models.UserGroupAssociation).filter_by( \
user_id=id, group_id = user_group.id).all()
for group_user in group_users:
session.delete(group_user)
- user_tenant_ref= session.query(models.UserTenantAssociation).filter_by( \
+ user_tenant_ref = session.query(models.UserTenantAssociation).filter_by( \
user_id=id).first()
if user_tenant_ref is None:
user_ref = user_get(id, session)
session.delete(user_ref)
-
+
def user_tenant_group(values):
user_ref = models.UserGroupAssociation()
user_ref.update(values)
diff --git a/keystone/db/sqlalchemy/session.py b/keystone/db/sqlalchemy/session.py
index b67d1aa4..3e7b5a1f 100644
--- a/keystone/db/sqlalchemy/session.py
+++ b/keystone/db/sqlalchemy/session.py
@@ -29,13 +29,13 @@ from sqlalchemy.orm import sessionmaker
_ENGINE = None
_MAKER = None
+
def get_connection_string():
path = os.path.realpath(__file__)
dbpath = os.path.normpath(os.path.join(path,
- os.pardir, # sqlalchemy
- os.pardir, # db
- os.pardir # keystone
- ))
+ os.pardir, # sqlalchemy
+ os.pardir, # db
+ os.pardir)) # keystone
connection_string = "sqlite:///%s/keystone.db" % dbpath
logging.debug('SQL ALchemy connection string: %s', connection_string)
return connection_string
diff --git a/keystone/logic/types/atom.py b/keystone/logic/types/atom.py
index fd09b79e..0b2345d9 100644
--- a/keystone/logic/types/atom.py
+++ b/keystone/logic/types/atom.py
@@ -14,6 +14,7 @@
# limitations under the License.
from lxml import etree
+
class Link(object):
"An atom link"
@@ -23,8 +24,7 @@ class Link(object):
self.link_type = link_type
self.hreflang = hreflang
self.title = title
-
-
+
def to_dict(self):
links = {}
if self.link_type:
@@ -33,16 +33,16 @@ class Link(object):
links["hreflang"] = self.hreflang
if self.title:
links["title"] = self.title
-
+
links["rel"] = self.rel
links["href"] = self.href
return {'links': links}
-
+
def to_dom(self):
- ATOM_NAMESPACE ="http://www.w3.org/2005/Atom"
+ ATOM_NAMESPACE = "http://www.w3.org/2005/Atom"
ATOM = "{%s}" % ATOM_NAMESPACE
- NSMAP = {'atom' : ATOM_NAMESPACE}
- dom = etree.Element(ATOM+"link", nsmap=NSMAP)
+ NSMAP = {'atom': ATOM_NAMESPACE}
+ dom = etree.Element(ATOM + "link", nsmap=NSMAP)
if self.link_type:
dom.set("link_type", self.link_type)
if self.link_type:
@@ -51,4 +51,4 @@ class Link(object):
dom.set("title", self.title)
dom.set("rel", self.rel)
dom.set("href", self.href)
- return dom \ No newline at end of file
+ return dom
diff --git a/keystone/logic/types/fault.py b/keystone/logic/types/fault.py
index e35ca50a..27032c7c 100644
--- a/keystone/logic/types/fault.py
+++ b/keystone/logic/types/fault.py
@@ -73,7 +73,7 @@ class BadRequestFault(IDMFault):
class UnauthorizedFault(IDMFault):
"User is unauthorized"
-
+
def __init__(self, msg, details=None, code=401):
super(UnauthorizedFault, self).__init__(msg, details, code)
self.key = "unauthorized"
@@ -86,6 +86,7 @@ class ForbiddenFault(IDMFault):
super(ForbiddenFault, self).__init__(msg, details, code)
self.key = "forbidden"
+
class TenantDisabledFault(IDMFault):
"The tenant is disabled"
@@ -109,14 +110,15 @@ class TenantConflictFault(IDMFault):
super(TenantConflictFault, self).__init__(msg, details, code)
self.key = "tenantConflict"
+
class TenantGroupConflictFault(IDMFault):
"The tenant Group already exists?"
def __init__(self, msg, details=None, code=409):
super(TenantGroupConflictFault, self).__init__(msg, details, code)
self.key = "tenantGroupConflict"
-
-
+
+
class OverlimitFault(IDMFault):
"A limit has been exceeded"
@@ -125,7 +127,8 @@ class OverlimitFault(IDMFault):
self.args = (code, msg, details, retry_at)
self.retry_at = retry_at
self.key = "overLimit"
-
+
+
class UserConflictFault(IDMFault):
"The User already exists?"
@@ -133,6 +136,7 @@ class UserConflictFault(IDMFault):
super(UserConflictFault, self).__init__(msg, details, code)
self.key = "userConflict"
+
class UserDisabledFault(IDMFault):
"The user is disabled"
@@ -140,6 +144,7 @@ class UserDisabledFault(IDMFault):
super(UserDisabledFault, self).__init__(msg, details, code)
self.key = "userDisabled"
+
class EmailConflictFault(IDMFault):
"The Email already exists?"
@@ -147,6 +152,7 @@ class EmailConflictFault(IDMFault):
super(EmailConflictFault, self).__init__(msg, details, code)
self.key = "emailConflict"
+
class UserGroupConflictFault(IDMFault):
"The user already exists in group?"
diff --git a/keystone/logic/types/tenant.py b/keystone/logic/types/tenant.py
index de64faee..f57fc523 100644
--- a/keystone/logic/types/tenant.py
+++ b/keystone/logic/types/tenant.py
@@ -109,7 +109,7 @@ class Tenants(object):
def to_xml(self):
dom = etree.Element("tenants")
- dom.set(u"xmlns","http://docs.openstack.org/idm/api/v1.0")
+ dom.set(u"xmlns", "http://docs.openstack.org/idm/api/v1.0")
for t in self.values:
dom.append(t.to_dom())
@@ -122,7 +122,7 @@ class Tenants(object):
def to_json(self):
values = [t.to_dict()["tenant"] for t in self.values]
links = [t.to_dict()["links"] for t in self.links]
- return json.dumps({"tenants": {"values": values,"links":links}})
+ return json.dumps({"tenants": {"values": values, "links": links}})
class Group(object):
@@ -145,12 +145,12 @@ class Group(object):
if root == None:
raise fault.BadRequestFault("Expecting Group")
group_id = root.get("id")
- tenant_id=None
+ tenant_id = None
if root.get("tenantId"):
tenant_id = root.get("tenantId")
else:
tenant_id = None
-
+
desc = root.find("{http://docs.openstack.org/idm/api/v1.0}"
"description")
if desc == None:
@@ -222,7 +222,7 @@ class Groups(object):
def to_xml(self):
dom = etree.Element("groups")
- dom.set(u"xmlns","http://docs.openstack.org/idm/api/v1.0")
+ dom.set(u"xmlns", "http://docs.openstack.org/idm/api/v1.0")
for t in self.values:
dom.append(t.to_dom())
@@ -235,7 +235,7 @@ class Groups(object):
def to_json(self):
values = [t.to_dict()["group"] for t in self.values]
links = [t.to_dict()["links"] for t in self.links]
- return json.dumps({"groups": {"values": values,"links":links}})
+ return json.dumps({"groups": {"values": values, "links": links}})
class GlobalGroup(object):
@@ -244,7 +244,6 @@ class GlobalGroup(object):
def __init__(self, group_id, description, tenant_id=None):
self.description = description
self.group_id = group_id
-
@staticmethod
def from_xml(xml_str):
@@ -255,7 +254,7 @@ class GlobalGroup(object):
if root == None:
raise fault.BadRequestFault("Expecting Group")
group_id = root.get("id")
-
+
desc = root.find("{http://docs.openstack.org/idm/api/v1.0}"
"description")
if desc == None:
@@ -290,7 +289,7 @@ class GlobalGroup(object):
xmlns="http://docs.openstack.org/idm/api/v1.0")
if self.group_id:
dom.set("id", self.group_id)
-
+
desc = etree.Element("description")
desc.text = self.description
dom.append(desc)
@@ -304,7 +303,7 @@ class GlobalGroup(object):
if self.group_id:
group["id"] = self.group_id
group["description"] = self.description
-
+
return {'group': group}
def to_json(self):
@@ -320,7 +319,7 @@ class GlobalGroups(object):
def to_xml(self):
dom = etree.Element("groups")
- dom.set(u"xmlns","http://docs.openstack.org/idm/api/v1.0")
+ dom.set(u"xmlns", "http://docs.openstack.org/idm/api/v1.0")
for t in self.values:
dom.append(t.to_dom())
@@ -333,10 +332,7 @@ class GlobalGroups(object):
def to_json(self):
values = [t.to_dict()["group"] for t in self.values]
links = [t.to_dict()["links"] for t in self.links]
- return json.dumps({"groups": {"values": values,"links":links}})
-
-
-
+ return json.dumps({"groups": {"values": values, "links": links}})
class User(object):
@@ -432,7 +428,7 @@ class Users(object):
def to_xml(self):
dom = etree.Element("users")
- dom.set(u"xmlns","http://docs.openstack.org/idm/api/v1.0")
+ dom.set(u"xmlns", "http://docs.openstack.org/idm/api/v1.0")
for t in self.values:
dom.append(t.to_dom())
@@ -445,4 +441,4 @@ class Users(object):
def to_json(self):
values = [t.to_dict()["user"] for t in self.values]
links = [t.to_dict()["links"] for t in self.links]
- return json.dumps({"users": {"values": values,"links":links}})
+ return json.dumps({"users": {"values": values, "links": links}})
diff --git a/keystone/logic/types/user.py b/keystone/logic/types/user.py
index f3a56a5d..2c50de65 100644
--- a/keystone/logic/types/user.py
+++ b/keystone/logic/types/user.py
@@ -22,13 +22,13 @@ import string
class User(object):
"A user."
- def __init__(self, password,user_id, tenant_id, email,enabled):
+ def __init__(self, password, user_id, tenant_id, email, enabled):
self.user_id = user_id
self.tenant_id = tenant_id
self.password = password
self.email = email
self.enabled = enabled and True or False
-
+
@staticmethod
def from_xml(xml_str):
try:
@@ -37,7 +37,7 @@ class User(object):
root = dom.find("{http://docs.openstack.org/idm/api/v1.0}user")
if root == None:
raise fault.BadRequestFault("Expecting User")
- user_id=root.get("id")
+ user_id = root.get("id")
tenant_id = root.get("tenantId")
email = root.get("email")
password = root.get("password")
@@ -49,7 +49,7 @@ class User(object):
elif password == None:
raise fault.BadRequestFault("Expecting User password")
elif email == None:
- raise fault.BadRequestFault("Expecting User email")
+ raise fault.BadRequestFault("Expecting User email")
if enabled == None or enabled == "true" or enabled == "yes":
set_enabled = True
elif enabled == "false" or enabled == "no":
@@ -57,8 +57,8 @@ class User(object):
else:
raise fault.BadRequestFault("Bad enabled attribute!")
if password == '':
- password=user_id
- return User(password,user_id,tenant_id,email,set_enabled)
+ password = user_id
+ return User(password, user_id, tenant_id, email, set_enabled)
except etree.LxmlError as e:
raise fault.BadRequestFault("Cannot parse User", str(e))
@@ -86,12 +86,12 @@ class User(object):
if "enabled" in user:
set_enabled = user["enabled"]
if not isinstance(set_enabled, bool):
- raise fault.BadRequestFault("Bad enabled attribute!")
+ raise fault.BadRequestFault("Bad enabled attribute!")
else:
- set_enabled=True
+ set_enabled = True
if password == '':
- password=user_id
- return User(password,user_id,tenant_id,email,set_enabled)
+ password = user_id
+ return User(password, user_id, tenant_id, email, set_enabled)
except (ValueError, TypeError) as e:
raise fault.BadRequestFault("Cannot parse Tenant", str(e))
@@ -101,15 +101,13 @@ class User(object):
if self.email:
dom.set("email", self.email)
if self.tenant_id:
- dom.set("tenantId",self.tenant_id)
+ dom.set("tenantId", self.tenant_id)
if self.user_id:
- dom.set("id",self.user_id)
+ dom.set("id", self.user_id)
if self.enabled:
- dom.set("enabled",string.lower(str(self.enabled)))
+ dom.set("enabled", string.lower(str(self.enabled)))
if self.password:
- dom.set("password",self.password)
-
-
+ dom.set("password", self.password)
return dom
def to_xml(self):
@@ -118,29 +116,32 @@ class User(object):
def to_dict(self):
user = {}
-
+
if self.user_id:
user["id"] = self.user_id
- user["tenantId"]=self.tenant_id
+ user["tenantId"] = self.tenant_id
if self.password:
- user["password"]=self.password
- user["email"]=self.email
- user["enabled"]=self.enabled
+ user["password"] = self.password
+ user["email"] = self.email
+ user["enabled"] = self.enabled
return {'user': user}
-
+
def to_json(self):
- return json.dumps(self.to_dict())
-
+ return json.dumps(self.to_dict())
+
+
class User_Update(object):
"A user."
- def __init__(self, password,user_id, tenant_id, email,enabled, group=None):
+ def __init__(self, password, user_id, tenant_id, email,
+ enabled, group=None):
self.user_id = user_id
self.tenant_id = tenant_id
self.password = password
self.email = email
self.enabled = enabled and True or False
- self.group=group
+ self.group = group
+
@staticmethod
def from_xml(xml_str):
try:
@@ -149,11 +150,11 @@ class User_Update(object):
root = dom.find("{http://docs.openstack.org/idm/api/v1.0}user")
if root == None:
raise fault.BadRequestFault("Expecting User")
- user_id=root.get("id")
+ user_id = root.get("id")
tenant_id = root.get("tenantId")
email = root.get("email")
password = root.get("password")
- enabled = root.get("enabled")
+ enabled = root.get("enabled")
if enabled == None or enabled == "true" or enabled == "yes":
set_enabled = True
elif enabled == "false" or enabled == "no":
@@ -161,8 +162,8 @@ class User_Update(object):
else:
raise fault.BadRequestFault("Bad enabled attribute!")
if password == '':
- password=user_id
- return User(password,user_id,tenant_id,email,set_enabled)
+ password = user_id
+ return User(password, user_id, tenant_id, email, set_enabled)
except etree.LxmlError as e:
raise fault.BadRequestFault("Cannot parse User", str(e))
@@ -181,24 +182,24 @@ class User_Update(object):
if not "password" in user:
password = None
else:
- password=user["password"]
+ password = user["password"]
if not "tenantId" in user:
- tenant_id=None
+ tenant_id = None
else:
tenant_id = user["tenantId"]
if not "email" in user:
- email=None
- else:
+ email = None
+ else:
email = user["email"]
if "enabled" in user:
set_enabled = user["enabled"]
if not isinstance(set_enabled, bool):
- raise fault.BadRequestFault("Bad enabled attribute!")
+ raise fault.BadRequestFault("Bad enabled attribute!")
else:
- set_enabled=True
+ set_enabled = True
if password == '':
- password=user_id
- return User(password,user_id,tenant_id,email,set_enabled)
+ password = user_id
+ return User(password, user_id, tenant_id, email, set_enabled)
except (ValueError, TypeError) as e:
raise fault.BadRequestFault("Cannot parse Tenant", str(e))
@@ -208,13 +209,13 @@ class User_Update(object):
if self.email:
dom.set("email", self.email)
if self.tenant_id:
- dom.set("tenantId",self.tenant_id)
+ dom.set("tenantId", self.tenant_id)
if self.user_id:
- dom.set("id",self.user_id)
+ dom.set("id", self.user_id)
if self.enabled is not None:
- dom.set("enabled",string.lower(str(self.enabled)))
+ dom.set("enabled", string.lower(str(self.enabled)))
if self.password:
- dom.set("password",self.password)
+ dom.set("password", self.password)
if self.group is not None:
print '78'
for group in self.group:
@@ -226,24 +227,25 @@ class User_Update(object):
def to_dict(self):
user = {}
-
+
if self.user_id:
user["id"] = self.user_id
if self.user_id:
- user["tenantId"]=self.tenant_id
+ user["tenantId"] = self.tenant_id
if self.password:
- user["password"]=self.password
+ user["password"] = self.password
if self.email:
- user["email"]=self.email
+ user["email"] = self.email
if self.enabled is not None:
- user["enabled"]=self.enabled
+ user["enabled"] = self.enabled
if self.group is not None:
- values=[t.to_dict()["group"] for t in self.group]
+ values = [t.to_dict()["group"] for t in self.group]
user["groups"] = {"values": values}
return {'user': user}
-
+
def to_json(self):
- return json.dumps(self.to_dict())
+ return json.dumps(self.to_dict())
+
class Users(object):
"A collection of users."
@@ -264,4 +266,4 @@ class Users(object):
def to_json(self):
values = [t.to_dict()["user"] for t in self.values]
links = [t.to_dict()["links"] for t in self.links]
- return json.dumps({"users": {"values": values, "links": links}}) \ No newline at end of file
+ return json.dumps({"users": {"values": values, "links": links}})
diff --git a/keystone/server.py b/keystone/server.py
index e0338f30..39a309e1 100755
--- a/keystone/server.py
+++ b/keystone/server.py
@@ -66,7 +66,6 @@ import keystone.logic.types.fault as fault
import keystone.logic.types.user as users
import keystone.common.template as template
-# Shall give [app:server paste value from conf file ]
logger = logging.getLogger('keystone.server')
VERSION_STATUS = "ALPHA"
@@ -74,6 +73,10 @@ VERSION_DATE = "2011-04-23T00:00:00Z"
service = serv.IDMService()
+"""
+General Functions for the server.py use
+"""
+
def is_xml_response(req):
if not "Accept" in req.headers:
@@ -96,9 +99,7 @@ def wrap_error(func):
@functools.wraps(func)
def check_error(*args, **kwargs):
try:
-
return func(*args, **kwargs)
-
except Exception as err:
if isinstance(err, fault.IDMFault):
return send_error(err.code, kwargs['req'], err)
@@ -110,16 +111,13 @@ def wrap_error(func):
def get_normalized_request_content(model, req):
- """initialize a model from json/xml contents of request body"""
+ """Initialize a model from json/xml contents of request body"""
if req.content_type == "application/xml":
-
ret = model.from_xml(req.body)
elif req.content_type == "application/json":
-
ret = model.from_json(req.body)
else:
-
raise fault.IDMFault("I don't understand the content type ", code=415)
return ret
@@ -172,6 +170,10 @@ def send_result(code, req, result):
class StaticFilesController(wsgi.Controller):
+ """
+ Static Files Controller -
+ Controller for contract documents
+ """
def __init__(self, options):
self.options = options
@@ -205,7 +207,11 @@ class StaticFilesController(wsgi.Controller):
mimetype="application/xml")
-class MiscController(wsgi.Controller):
+class VersionController(wsgi.Controller):
+ """
+ Version Controller -
+ Controller for version related methods
+ """
def __init__(self, options):
self.options = options
@@ -234,6 +240,10 @@ class MiscController(wsgi.Controller):
class AuthController(wsgi.Controller):
+ """
+ Auth Controller -
+ Controller for token related operations
+ """
def __init__(self, options):
self.options = options
@@ -264,6 +274,10 @@ class AuthController(wsgi.Controller):
class TenantController(wsgi.Controller):
+ """
+ Tenant Controller -
+ Controller for Tenant and Tenant Group related operations
+ """
def __init__(self, options):
self.options = options
@@ -309,7 +323,6 @@ class TenantController(wsgi.Controller):
rval = service.delete_tenant(get_auth_token(req), tenant_id)
return send_result(204, req, rval)
- # Tenant Group Methods
@wrap_error
def create_tenant_group(self, req, tenant_id):
group = get_normalized_request_content(tenants.Group, req)
@@ -390,6 +403,10 @@ class TenantController(wsgi.Controller):
class UserController(wsgi.Controller):
+ """
+ User Controller -
+ Controller for User related operations
+ """
def __init__(self, options):
self.options = options
@@ -461,7 +478,6 @@ class UserController(wsgi.Controller):
user_id, user, tenant_id)
return send_result(204, req, rval)
- # To be checked with Abdul not finished yet
@wrap_error
def set_user_enabled(self, req, user_id, tenant_id):
user = get_normalized_request_content(users.User_Update, req)
@@ -471,9 +487,12 @@ class UserController(wsgi.Controller):
class GroupsController(wsgi.Controller):
+ """
+ Groups Controller -
+ Controller for Group related operations
+ """
def __init__(self, options):
-
self.options = options
@wrap_error
@@ -682,11 +701,11 @@ class KeystoneAPI(wsgi.Router):
conditions=dict(method=["DELETE"]))
# Miscellaneous Operations
- misc_controller = MiscController(options)
- mapper.connect("/v1.0/", controller=misc_controller,
+ version_controller = VersionController(options)
+ mapper.connect("/v1.0/", controller=version_controller,
action="get_version_info",
conditions=dict(method=["GET"]))
- mapper.connect("/v1.0", controller=misc_controller,
+ mapper.connect("/v1.0", controller=version_controller,
action="get_version_info",
conditions=dict(method=["GET"]))
diff --git a/keystone/version.py b/keystone/version.py
index 332f5841..770259b4 100755
--- a/keystone/version.py
+++ b/keystone/version.py
@@ -13,10 +13,13 @@
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
+
+""" Version file for the python daemon script """
+
KEYSTONE_VERSION = ['1', '0']
MAJOR, MINOR = KEYSTONE_VERSION
-FINAL = True # This becomes true at Release Candidate time
+FINAL = True
def canonical_version_string():
@@ -28,4 +31,3 @@ def version_string():
return canonical_version_string()
else:
return '%s-dev' % (canonical_version_string(),)
-