[pbs-devel] [PATCH proxmox-backup 04/10] ui: Utils: add parse_datastore_worker_id
Dominik Csapak
d.csapak at proxmox.com
Mon Nov 9 16:01:24 CET 2020
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 <d.csapak at proxmox.com>
---
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')),
--
2.20.1
More information about the pbs-devel
mailing list