]> git.proxmox.com Git - proxmox-widget-toolkit.git/commitdiff
parse_task_upid: Allow additional (optional) task_id field
authorDietmar Maurer <dietmar@proxmox.com>
Tue, 17 Dec 2019 10:46:11 +0000 (11:46 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 17 Dec 2019 10:51:46 +0000 (11:51 +0100)
We need that if tasks runs inside multi-threaded applications (several
tasks inside one process).

Utils.js

index 1fa699930647349133dec0d982b766f9ea43cc90..6d1b24c7079080cf04c393f6d64064999899489f 100644 (file)
--- a/Utils.js
+++ b/Utils.js
@@ -589,17 +589,20 @@ Ext.define('Proxmox.Utils', { utilities: {
     parse_task_upid: function(upid) {
        var task = {};
 
-       var res = upid.match(/^UPID:(\S+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/);
+       var res = upid.match(/^UPID:([^\s:]+):([0-9A-Fa-f]{8}):([0-9A-Fa-f]{8,9}):(([0-9A-Fa-f]{8,16}):)?([0-9A-Fa-f]{8}):([^:\s]+):([^:\s]*):([^:\s]+):$/);
        if (!res) {
            throw "unable to parse upid '" + upid + "'";
        }
        task.node = res[1];
        task.pid = parseInt(res[2], 16);
        task.pstart = parseInt(res[3], 16);
-       task.starttime = parseInt(res[4], 16);
-       task.type = res[5];
-       task.id = res[6];
-       task.user = res[7];
+       if (res[5] !== undefined) {
+           task.task_id = parseInt(res[5], 16);
+       }
+       task.starttime = parseInt(res[6], 16);
+       task.type = res[7];
+       task.id = res[8];
+       task.user = res[9];
 
        task.desc = Proxmox.Utils.format_task_description(task.type, task.id);