[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Added task.session field.
# HG changeset patch # User Ewan Mellor <ewan@xxxxxxxxxxxxx> # Date 1170173356 0 # Node ID 300c47bec138704d4753675f293b76ebb702da82 # Parent 0803bdfdd9c566ff14c9b88759ce5dd46d334aa8 Added task.session field. Fix session.get_by_uuid and get_uuid, and remove session.get_all. Signed-off-by: Ewan Mellor <ewan@xxxxxxxxxxxxx> --- docs/xen-api/xenapi-datamodel.tex | 33 +++++++++++++++++++++++++++++++ tools/python/xen/xend/XendAPI.py | 21 +++++++++++++++---- tools/python/xen/xend/XendTask.py | 7 ++++-- tools/python/xen/xend/XendTaskManager.py | 6 ++--- 4 files changed, 58 insertions(+), 9 deletions(-) diff -r 0803bdfdd9c5 -r 300c47bec138 docs/xen-api/xenapi-datamodel.tex --- a/docs/xen-api/xenapi-datamodel.tex Tue Jan 30 15:57:58 2007 +0000 +++ b/docs/xen-api/xenapi-datamodel.tex Tue Jan 30 16:09:16 2007 +0000 @@ -495,6 +495,7 @@ Quals & Field & Type & Description \\ $\mathit{RO}_\mathit{run}$ & {\tt name/label} & string & a human-readable name \\ $\mathit{RO}_\mathit{run}$ & {\tt name/description} & string & a notes field containg human-readable description \\ $\mathit{RO}_\mathit{run}$ & {\tt status} & task\_status\_type & current status of the task \\ +$\mathit{RO}_\mathit{run}$ & {\tt session} & session ref & the session that created the task \\ $\mathit{RO}_\mathit{run}$ & {\tt progress} & int & if the task is still pending, this field contains the estimated percentage complete (0-100). If task has completed (successfully or unsuccessfully) this should be 100. \\ $\mathit{RO}_\mathit{run}$ & {\tt type} & string & if the task has completed successfully, this field contains the type of the encoded result (i.e. name of the class whose reference is in the result field). Undefined otherwise. \\ $\mathit{RO}_\mathit{run}$ & {\tt result} & string & if the task has completed successfully, this field contains the result value (either Void or an object reference). Undefined otherwise. \\ @@ -684,6 +685,38 @@ Get the status field of the given task. \noindent {\bf Return Type:} {\tt task\_status\_type +} + + +value of the field +\vspace{0.3cm} +\vspace{0.3cm} +\vspace{0.3cm} +\subsubsection{RPC name:~get\_session} + +{\bf Overview:} +Get the session field of the given task. + + \noindent {\bf Signature:} +\begin{verbatim} (session ref) get_session (session_id s, task ref self)\end{verbatim} + + +\noindent{\bf Arguments:} + + +\vspace{0.3cm} +\begin{tabular}{|c|c|p{7cm}|} + \hline +{\bf type} & {\bf name} & {\bf description} \\ \hline +{\tt task ref } & self & reference to the object \\ \hline + +\end{tabular} + +\vspace{0.3cm} + + \noindent {\bf Return Type:} +{\tt +session ref } diff -r 0803bdfdd9c5 -r 300c47bec138 tools/python/xen/xend/XendAPI.py --- a/tools/python/xen/xend/XendAPI.py Tue Jan 30 15:57:58 2007 +0000 +++ b/tools/python/xen/xend/XendAPI.py Tue Jan 30 16:09:16 2007 +0000 @@ -396,6 +396,9 @@ class XendAPI(object): # all get_by_uuid() methods. for api_cls in classes.keys(): + if api_cls == 'session': + continue + get_by_uuid = '%s_get_by_uuid' % api_cls get_uuid = '%s_get_uuid' % api_cls def _get_by_uuid(_1, _2, ref): @@ -501,9 +504,13 @@ class XendAPI(object): 'this_host': XendNode.instance().uuid, 'this_user': auth_manager().get_user(session)} return xen_api_success(record) - def session_get_all(self): - return xen_api_error(XEND_ERROR_UNSUPPORTED) - + + def session_get_uuid(self, session): + return xen_api_success(session) + + def session_get_by_uuid(self, session): + return xen_api_success(session) + # attributes (ro) def session_get_this_host(self, session): return xen_api_success(XendNode.instance().uuid) @@ -530,6 +537,7 @@ class XendAPI(object): 'error_code', 'error_info', 'allowed_operations', + 'session' ] task_attr_rw = [] @@ -571,6 +579,10 @@ class XendAPI(object): def task_get_allowed_operations(self, session, task_ref): return xen_api_success({}) + + def task_get_session(self, session, task_ref): + task = XendTaskManager.get_task(task_ref) + return xen_api_success(task.session) def task_get_all(self, session): tasks = XendTaskManager.get_all_tasks() @@ -2057,7 +2069,8 @@ class XendAPIAsyncProxy: task_uuid = XendTaskManager.create_task(method, args, synchronous_method_name, return_type, - synchronous_method_name) + synchronous_method_name, + session) return xen_api_success(task_uuid) # diff -r 0803bdfdd9c5 -r 300c47bec138 tools/python/xen/xend/XendTask.py --- a/tools/python/xen/xend/XendTask.py Tue Jan 30 15:57:58 2007 +0000 +++ b/tools/python/xen/xend/XendTask.py Tue Jan 30 16:09:16 2007 +0000 @@ -45,8 +45,8 @@ class XendTask(threading.Thread): task_progress = {} task_progress_lock = threading.Lock() - def __init__(self, uuid, func, args, func_name, return_type = None, - label = None, desc = None): + def __init__(self, uuid, func, args, func_name, return_type, label, desc, + session): """ @param uuid: UUID of the task @type uuid: string @@ -81,6 +81,8 @@ class XendTask(threading.Thread): self.func_name = func_name self.func = func self.args = args + + self.session = session def set_status(self, new_status): self.status_lock.acquire() @@ -145,6 +147,7 @@ class XendTask(threading.Thread): 'error_code': self.error_code, 'error_info': self.error_info, 'allowed_operations': {}, + 'session': self.session, } def get_progress(self): diff -r 0803bdfdd9c5 -r 300c47bec138 tools/python/xen/xend/XendTaskManager.py --- a/tools/python/xen/xend/XendTaskManager.py Tue Jan 30 15:57:58 2007 +0000 +++ b/tools/python/xen/xend/XendTaskManager.py Tue Jan 30 16:09:16 2007 +0000 @@ -32,7 +32,7 @@ tasks = {} tasks = {} tasks_lock = threading.Lock() -def create_task(func, args, func_name, return_type = None, label = ''): +def create_task(func, args, func_name, return_type, label, session): """Creates a new Task and registers it with the XendTaskManager. @param func: callable object XMLRPC method @@ -48,8 +48,8 @@ def create_task(func, args, func_name, r task_uuid = uuid.createString() try: tasks_lock.acquire() - task = XendTask(task_uuid, func, args, func_name, - return_type = return_type, label = label) + task = XendTask(task_uuid, func, args, func_name, return_type, label, + '', session) tasks[task_uuid] = task finally: tasks_lock.release() _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |