<html>
<head>
<meta content="text/html; charset=windows-1252"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<div class="moz-cite-prefix">On 03/03/2015 16:28, Aline Manera
wrote:<br>
</div>
<blockquote cite="mid:54F60B4E.5020404@linux.vnet.ibm.com"
type="cite">
<br>
Christy, just to make everyone aware about what we discussed
offline.
<br>
<br>
Instead of using a new parameter, we could append the operation
name to the target uri.
<br>
For example:
<br>
<br>
/vms/<name>/clone
<br>
<br>
So GET /vms?target_uri=^/vms/.*/clone will return all the VMs
being cloned.
<br>
</blockquote>
<br>
Sorry, it should be:<br>
<br>
GET <b>/tasks?</b>target_uri=^/vms/.*/clone<br>
<br>
<blockquote cite="mid:54F60B4E.5020404@linux.vnet.ibm.com"
type="cite">
<br>
On 27/02/2015 12:41, Christy Perez wrote:
<br>
<blockquote type="cite">Currently, you can only filter tasks by
their state (running) or
<br>
their URL. If you want to see cloning tasks, you query all
running
<br>
vm-related tasks.
<br>
<br>
It also adds descriptions for non-vm-related tasks.
<br>
<br>
Signed-off-by: Christy Perez <a class="moz-txt-link-rfc2396E" href="mailto:christy@linux.vnet.ibm.com"><christy@linux.vnet.ibm.com></a>
<br>
---
<br>
docs/API.md | 14 ++++++++++++++
<br>
src/kimchi/asynctask.py | 6 ++++--
<br>
src/kimchi/model/debugreports.py | 4 ++--
<br>
src/kimchi/model/host.py | 4 ++--
<br>
src/kimchi/model/storagepools.py | 2 +-
<br>
src/kimchi/model/storagevolumes.py | 7 ++++---
<br>
src/kimchi/model/tasks.py | 1 -
<br>
src/kimchi/model/vms.py | 5 ++---
<br>
src/kimchi/model/vmsnapshots.py | 3 ++-
<br>
src/kimchi/utils.py | 4 ++--
<br>
10 files changed, 33 insertions(+), 17 deletions(-)
<br>
<br>
diff --git a/docs/API.md b/docs/API.md
<br>
index 3f7925f..bc68f06 100644
<br>
--- a/docs/API.md
<br>
+++ b/docs/API.md
<br>
@@ -651,6 +651,20 @@ server.
<br>
* failed: The task failed
<br>
* message: Human-readable details about the Task status
<br>
* target_uri: Resource URI related to the Task
<br>
+ * description: A more-detailed identifier for a task.
<br>
+ * VM task descriptions:
<br>
+ * clone
<br>
+ * create
<br>
+ * Storage descriptions:
<br>
+ * create
<br>
+ * clone
<br>
+ * Pool descriptions:
<br>
+ * create
<br>
+ * scan
<br>
+ * Debugreport descriptions:
<br>
+ * create
<br>
+ * Host SW Update descriptions:
<br>
+ * update
<br>
* **POST**: *See Task Actions*
<br>
<br>
**Actions (POST):**
<br>
diff --git a/src/kimchi/asynctask.py b/src/kimchi/asynctask.py
<br>
index b5673b2..4944d7c 100644
<br>
--- a/src/kimchi/asynctask.py
<br>
+++ b/src/kimchi/asynctask.py
<br>
@@ -26,12 +26,14 @@
<br>
<br>
<br>
class AsyncTask(object):
<br>
- def __init__(self, id, target_uri, fn, objstore,
opaque=None):
<br>
+ def __init__(self, id, target_uri, descr, fn, objstore,
<br>
+ opaque=None):
<br>
if objstore is None:
<br>
raise OperationFailed("KCHASYNC0001E")
<br>
<br>
self.id = str(id)
<br>
self.target_uri = target_uri
<br>
+ self.description = descr
<br>
self.fn = fn
<br>
self.objstore = objstore
<br>
self.status = 'running'
<br>
@@ -56,7 +58,7 @@ def _status_cb(self, message, success=None):
<br>
<br>
def _save_helper(self):
<br>
obj = {}
<br>
- for attr in ('id', 'target_uri', 'message', 'status'):
<br>
+ for attr in ('id', 'target_uri', 'message', 'status',
'description'):
<br>
obj[attr] = getattr(self, attr)
<br>
try:
<br>
with self.objstore as session:
<br>
diff --git a/src/kimchi/model/debugreports.py
b/src/kimchi/model/debugreports.py
<br>
index 5f74da8..c657181 100644
<br>
--- a/src/kimchi/model/debugreports.py
<br>
+++ b/src/kimchi/model/debugreports.py
<br>
@@ -62,8 +62,8 @@ def _gen_debugreport_file(self, name):
<br>
gen_cmd = self.get_system_report_tool()
<br>
<br>
if gen_cmd is not None:
<br>
- return add_task('/debugreports/%s' % name, gen_cmd,
self.objstore,
<br>
- name)
<br>
+ return add_task('/debugreports/%s' % name,
'create', gen_cmd,
<br>
+ self.objstore, name)
<br>
<br>
raise OperationFailed("KCHDR0002E")
<br>
<br>
diff --git a/src/kimchi/model/host.py b/src/kimchi/model/host.py
<br>
index 4419bb3..26211d6 100644
<br>
--- a/src/kimchi/model/host.py
<br>
+++ b/src/kimchi/model/host.py
<br>
@@ -115,8 +115,8 @@ def swupdate(self, *name):
<br>
raise OperationFailed('KCHPKGUPD0001E')
<br>
<br>
kimchi_log.debug('Host is going to be updated.')
<br>
- taskid = add_task('/host/swupdate', swupdate.doUpdate,
self.objstore,
<br>
- None)
<br>
+ taskid = add_task('/host/swupdate', 'update',
swupdate.doUpdate,
<br>
+ self.objstore, None)
<br>
return self.task.lookup(taskid)
<br>
<br>
def shutdown(self, args=None):
<br>
diff --git a/src/kimchi/model/storagepools.py
b/src/kimchi/model/storagepools.py
<br>
index b85f3b4..e7a005b 100644
<br>
--- a/src/kimchi/model/storagepools.py
<br>
+++ b/src/kimchi/model/storagepools.py
<br>
@@ -167,7 +167,7 @@ def _do_deep_scan(self, params):
<br>
<br>
params['path'] =
self.scanner.scan_dir_prepare(params['name'])
<br>
scan_params['pool_path'] = params['path']
<br>
- task_id = add_task('/storagepools/%s' % ISO_POOL_NAME,
<br>
+ task_id = add_task('/storagepools/%s' % ISO_POOL_NAME,
'scan',
<br>
self.scanner.start_scan,
self.objstore, scan_params)
<br>
# Record scanning-task/storagepool mapping for future
querying
<br>
try:
<br>
diff --git a/src/kimchi/model/storagevolumes.py
b/src/kimchi/model/storagevolumes.py
<br>
index 0480496..e44f7db 100644
<br>
--- a/src/kimchi/model/storagevolumes.py
<br>
+++ b/src/kimchi/model/storagevolumes.py
<br>
@@ -117,7 +117,8 @@ def create(self, pool_name, params):
<br>
<br>
params['pool'] = pool_name
<br>
targeturi = '/storagepools/%s/storagevolumes/%s' %
(pool_name, name)
<br>
- taskid = add_task(targeturi, create_func,
self.objstore, params)
<br>
+ taskid = add_task(targeturi, 'create', create_func,
self.objstore,
<br>
+ params)
<br>
return self.task.lookup(taskid)
<br>
<br>
def _create_volume_with_file(self, cb, params):
<br>
@@ -414,8 +415,8 @@ def clone(self, pool, name, new_pool=None,
new_name=None):
<br>
'new_pool': new_pool,
<br>
'new_name': new_name}
<br>
taskid =
add_task(u'/storagepools/%s/storagevolumes/%s' %
<br>
- (pool, new_name), self._clone_task,
self.objstore,
<br>
- params)
<br>
+ (pool, new_name), 'clone',
self._clone_task,
<br>
+ self.objstore, params)
<br>
return self.task.lookup(taskid)
<br>
<br>
def _clone_task(self, cb, params):
<br>
diff --git a/src/kimchi/model/tasks.py
b/src/kimchi/model/tasks.py
<br>
index 61bc2f3..5520cfd 100644
<br>
--- a/src/kimchi/model/tasks.py
<br>
+++ b/src/kimchi/model/tasks.py
<br>
@@ -17,7 +17,6 @@
<br>
# License along with this library; if not, write to the Free
Software
<br>
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
MA 02110-1301 USA
<br>
<br>
-
<br>
import time
<br>
<br>
from kimchi.exception import TimeoutExpired
<br>
diff --git a/src/kimchi/model/vms.py b/src/kimchi/model/vms.py
<br>
index 379c850..078e63e 100644
<br>
--- a/src/kimchi/model/vms.py
<br>
+++ b/src/kimchi/model/vms.py
<br>
@@ -330,9 +330,8 @@ def clone(self, name):
<br>
new_name = get_next_clone_name(current_vm_names, name)
<br>
<br>
# create a task with the actual clone function
<br>
- taskid = add_task(u'/vms/%s' % new_name,
self._clone_task,
<br>
- self.objstore,
<br>
- {'name': name, 'new_name': new_name})
<br>
+ taskid = add_task(u'/vms/%s' % new_name, 'clone',
self._clone_task,
<br>
+ self.objstore, {'name': name,
'new_name': new_name})
<br>
<br>
return self.task.lookup(taskid)
<br>
<br>
diff --git a/src/kimchi/model/vmsnapshots.py
b/src/kimchi/model/vmsnapshots.py
<br>
index 3a92cdc..c899d2e 100644
<br>
--- a/src/kimchi/model/vmsnapshots.py
<br>
+++ b/src/kimchi/model/vmsnapshots.py
<br>
@@ -73,7 +73,8 @@ def create(self, vm_name, params={}):
<br>
<br>
task_params = {'vm_name': vm_name, 'name': name}
<br>
taskid = add_task(u'/vms/%s/snapshots/%s' % (vm_name,
name),
<br>
- self._create_task, self.objstore,
task_params)
<br>
+ 'create', self._create_task,
self.objstore,
<br>
+ task_params)
<br>
return self.task.lookup(taskid)
<br>
<br>
def _create_task(self, cb, params):
<br>
diff --git a/src/kimchi/utils.py b/src/kimchi/utils.py
<br>
index fc5245f..32ec6b1 100644
<br>
--- a/src/kimchi/utils.py
<br>
+++ b/src/kimchi/utils.py
<br>
@@ -66,9 +66,9 @@ def get_next_task_id():
<br>
return task_id
<br>
<br>
<br>
-def add_task(target_uri, fn, objstore, opaque=None):
<br>
+def add_task(target_uri, description, fn, objstore,
opaque=None):
<br>
id = get_next_task_id()
<br>
- AsyncTask(id, target_uri, fn, objstore, opaque)
<br>
+ AsyncTask(id, target_uri, description, fn, objstore,
opaque)
<br>
return id
<br>
<br>
<br>
</blockquote>
<br>
_______________________________________________
<br>
Kimchi-devel mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:Kimchi-devel@ovirt.org">Kimchi-devel@ovirt.org</a>
<br>
<a class="moz-txt-link-freetext" href="http://lists.ovirt.org/mailman/listinfo/kimchi-devel">http://lists.ovirt.org/mailman/listinfo/kimchi-devel</a>
<br>
<br>
</blockquote>
<br>
</body>
</html>