Implement session.last_active, session.this_host, session.get_record,

session.get_uuid.

Signed-off-by: Ewan Mellor <ewan@xensource.com>
This commit is contained in:
Ewan Mellor committed 2007-03-26 00:08:13 +01:00
1 parent 231f7bf638
commit 9c052c30d6
4 files changed
+256 -21

No files matched your search

+31 -14
View File
@@ -523,9 +523,12 @@ class XendAPI(object):
# ----------------------------------------------------------------
# NOTE: Left unwrapped by __init__
session_attr_ro = ['this_host', 'this_user']
session_attr_ro = ['this_host', 'this_user', 'last_active']
session_methods = [('logout', None)]
def session_get_all(self, session):
return xen_api_success([session])
def session_login_with_password(self, *args):
if len(args) != 2:
return xen_api_error(
@@ -534,8 +537,8 @@ class XendAPI(object):
username = args[0]
password = args[1]
try:
session = (self.auth == AUTH_NONE and
auth_manager().login_unconditionally(username) or
session = ((self.auth == AUTH_NONE and
auth_manager().login_unconditionally(username)) or
auth_manager().login_with_password(username, password))
return xen_api_success(session)
except XendError, e:
@@ -546,27 +549,41 @@ class XendAPI(object):
def session_logout(self, session):
auth_manager().logout(session)
return xen_api_success_void()
def session_get_record(self, session):
record = {'uuid' : session,
'this_host': XendNode.instance().uuid,
'this_user': auth_manager().get_user(session)}
def session_get_record(self, session, self_session):
if self_session != session:
return xen_api_error(['PERMISSION_DENIED'])
record = {'uuid' : session,
'this_host' : XendNode.instance().uuid,
'this_user' : auth_manager().get_user(session),
'last_active': now()}
return xen_api_success(record)
def session_get_uuid(self, session):
return xen_api_success(session)
def session_get_uuid(self, session, self_session):
return xen_api_success(self_session)
def session_get_by_uuid(self, session):
return xen_api_success(session)
def session_get_by_uuid(self, session, self_session):
return xen_api_success(self_session)
# attributes (ro)
def session_get_this_host(self, session):
def session_get_this_host(self, session, self_session):
if self_session != session:
return xen_api_error(['PERMISSION_DENIED'])
return xen_api_success(XendNode.instance().uuid)
def session_get_this_user(self, session):
def session_get_this_user(self, session, self_session):
if self_session != session:
return xen_api_error(['PERMISSION_DENIED'])
user = auth_manager().get_user(session)
if user:
if user is not None:
return xen_api_success(user)
return xen_api_error(['SESSION_INVALID', session])
def session_get_last_active(self, session, self_session):
if self_session != session:
return xen_api_error(['PERMISSION_DENIED'])
return xen_api_success(now())
# Xen API: Class User
# ----------------------------------------------------------------
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.