[Kimchi-devel] [PATCH] [Wok 2/3] Issue #158: Update model/tasks.py with AsyncTasks in memory.
Aline Manera
alinefm at linux.vnet.ibm.com
Fri Aug 26 11:25:15 UTC 2016
Reviewed-by: Aline Manera <alinefm at linux.vnet.ibm.com>
On 08/24/2016 04:36 PM, pvital at linux.vnet.ibm.com wrote:
> From: Paulo Vital <pvital at linux.vnet.ibm.com>
>
> TasksModel and TaskModel classes need to be updated after move
> AsyncTasks to memory.
>
> Signed-off-by: Paulo Vital <pvital at linux.vnet.ibm.com>
> ---
> src/wok/i18n.py | 1 +
> src/wok/model/tasks.py | 22 +++++++++++++---------
> 2 files changed, 14 insertions(+), 9 deletions(-)
>
> diff --git a/src/wok/i18n.py b/src/wok/i18n.py
> index 1a0446b..ade2ae9 100644
> --- a/src/wok/i18n.py
> +++ b/src/wok/i18n.py
> @@ -33,6 +33,7 @@ messages = {
> "WOKAPI0008E": _("Parameters does not match requirement in schema: %(err)s"),
> "WOKAPI0009E": _("You don't have permission to perform this operation."),
>
> + "WOKASYNC0001E": _("Unable to find task id: %(id)s"),
> "WOKASYNC0003E": _("Timeout of %(seconds)s seconds expired while running task '%(task)s."),
>
> "WOKAUTH0001E": _("Authentication failed for user '%(username)s'. [Error code: %(code)s]"),
> diff --git a/src/wok/model/tasks.py b/src/wok/model/tasks.py
> index 9c32554..15fe6f9 100644
> --- a/src/wok/model/tasks.py
> +++ b/src/wok/model/tasks.py
> @@ -22,7 +22,8 @@
>
> import time
>
> -from wok.exception import TimeoutExpired
> +from wok.exception import NotFoundError, TimeoutExpired
> +from wok.utils import tasks_queue
>
>
> class TasksModel(object):
> @@ -30,8 +31,7 @@ class TasksModel(object):
> self.objstore = kargs['objstore']
>
> def get_list(self):
> - with self.objstore as session:
> - return session.get_list('task')
> + return tasks_queue.keys()
>
>
> class TaskModel(object):
> @@ -39,8 +39,13 @@ class TaskModel(object):
> self.objstore = kargs['objstore']
>
> def lookup(self, id):
> - with self.objstore as session:
> - return session.get('task', str(id))
> + if id not in tasks_queue.keys():
> + raise NotFoundError('WOKASYNC0001E', {'id': id})
> + task = tasks_queue[id]
> + return {'id': id,
> + 'status': task.status,
> + 'message': task.message,
> + 'target_uri': task.target_uri}
>
> def wait(self, id, timeout=10):
> """Wait for a task until it stops running (successfully or due to
> @@ -54,13 +59,12 @@ class TaskModel(object):
> "TimeoutExpired" is raised.
> """
> for i in range(0, timeout):
> - with self.objstore as session:
> - task = session.get('task', str(id))
> + task = tasks_queue[id]
>
> - if task['status'] != 'running':
> + if task.status != 'running':
> return
>
> time.sleep(1)
>
> raise TimeoutExpired('WOKASYNC0003E', {'seconds': timeout,
> - 'task': task['target_uri']})
> + 'task': task.target_uri})
More information about the Kimchi-devel
mailing list