From 616650a198520c886c6b39d1f4e31bf83555820f Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 9 Nov 2020 16:01:24 +0100 Subject: [PATCH] ui: Utils: add parse_datastore_worker_id to parse the datastore out of a worker_id for this we need some regexes that are the same as in the backend for now we only parse out the datastore, but we can extend this in the future to parse relevant info (e.g. remote for syncs, id/type for backups) Signed-off-by: Dominik Csapak --- www/Utils.js | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/www/Utils.js b/www/Utils.js index 8b87f1bf..d459eec7 100644 --- a/www/Utils.js +++ b/www/Utils.js @@ -159,6 +159,34 @@ Ext.define('PBS.Utils', { return `Datastore ${what} ${id}`; }, + parse_datastore_worker_id: function(type, id) { + let result; + let res; + if (type.startsWith('verif')) { + res = PBS.Utils.VERIFICATION_JOB_ID_RE.exec(id); + if (res) { + result = res[1]; + } + } else if (type.startsWith('sync')) { + res = PBS.Utils.SYNC_JOB_ID_RE.exec(id); + if (res) { + result = res[3]; + } + } else if (type === 'backup') { + res = PBS.Utils.BACKUP_JOB_ID_RE.exec(id); + if (res) { + result = res[1]; + } + } else if (type === 'garbage_collection') { + return id; + } else if (type === 'prune') { + return id; + } + + + return result; + }, + extractTokenUser: function(tokenid) { return tokenid.match(/^(.+)!([^!]+)$/)[1]; }, @@ -197,6 +225,14 @@ Ext.define('PBS.Utils', { constructor: function() { var me = this; + let PROXMOX_SAFE_ID_REGEX = "([A-Za-z0-9_][A-Za-z0-9._-]*)"; + // only anchored at beginning + // only parses datastore for now + me.VERIFICATION_JOB_ID_RE = new RegExp("^" + PROXMOX_SAFE_ID_REGEX + ':?'); + me.SYNC_JOB_ID_RE = new RegExp("^" + PROXMOX_SAFE_ID_REGEX + ':' + + PROXMOX_SAFE_ID_REGEX + ':' + PROXMOX_SAFE_ID_REGEX + ':'); + me.BACKUP_JOB_ID_RE = new RegExp("^" + PROXMOX_SAFE_ID_REGEX + ':'); + // do whatever you want here Proxmox.Utils.override_task_descriptions({ backup: (type, id) => PBS.Utils.render_datastore_worker_id(id, gettext('Backup')),