From df881ed0fc89a0c008bfb6281896fc8c20da7005 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 25 Apr 2023 15:59:56 +0200 Subject: [PATCH] ui: tape: fix restoring a single datastore if the user selected a single datastore to restore from tape on a media-set that includes more than one, the ui suggests (and is intended to) that only that datastore will be restored on the selected target. The logic to construct the store mapping parameter did not consider that case, and simply gave the target as default store, which meant all datastores were restored onto the target. To fix that, we have to get the source datastore from the field, and construct the correct parameter ("source=target"). Signed-off-by: Dominik Csapak --- www/tape/window/TapeRestore.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/www/tape/window/TapeRestore.js b/www/tape/window/TapeRestore.js index 48119ac6..2ff7c4dd 100644 --- a/www/tape/window/TapeRestore.js +++ b/www/tape/window/TapeRestore.js @@ -375,9 +375,15 @@ Ext.define('PBS.TapeManagement.TapeRestoreWindow', { onGetValues: function(values) { let me = this; let controller = me.up('window').getController(); + let vm = controller.getViewModel(); let datastores = []; if (values.store.toString() !== "") { - datastores.push(values.store); + if (vm.get('singleDatastore')) { + let source = controller.lookup('snapshotGrid').getValue(); + datastores.push(`${source}=${values.store}`); + } else { + datastores.push(values.store); + } delete values.store; }