public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH manager] ui: improve vm/container migration user experience
@ 2023-09-05 13:51 Philipp Hufnagl
  2023-09-06  9:18 ` Thomas Lamprecht
  0 siblings, 1 reply; 3+ messages in thread
From: Philipp Hufnagl @ 2023-09-05 13:51 UTC (permalink / raw)
  To: pve-devel

After the implementation of fix #474, it has been suggested that
instead of requiring the user to click a checkbox allowing migration,
it should be allowed automatically and and a warning should be displayed

Further it has been discussed to rename the feature from "transfer" to
"migrate". However and API change would break already implemented usage
and so it has been decided to call it (for now) transfer everywhere to
avoid confusion

Signed-off-by: Philipp Hufnagl <p.hufnagl@proxmox.com>
---
 www/manager6/grid/PoolMembers.js | 29 ++++++++++++++++++++++-------
 1 file changed, 22 insertions(+), 7 deletions(-)

diff --git a/www/manager6/grid/PoolMembers.js b/www/manager6/grid/PoolMembers.js
index 224daca3..d6fa0278 100644
--- a/www/manager6/grid/PoolMembers.js
+++ b/www/manager6/grid/PoolMembers.js
@@ -35,6 +35,20 @@ Ext.define('PVE.pool.AddVM', {
 	    ],
 	});
 
+	let transferWarning = Ext.create('Ext.form.field.Display', {
+	    userCls: 'pmx-hint',
+	    value: gettext('One or more vms or container will be removed from their old pool'),
+	    hidden: true,
+	});
+
+	let transfer = Ext.create('Ext.form.field.Checkbox', {
+	    name: 'transfer',
+	    boxLabel: gettext('Allow Transfer'),
+	    inputValue: 1,
+	    hidden: true,
+	    value: 0,
+	});
+
 	var vmGrid = Ext.create('widget.grid', {
 	    store: vmStore,
 	    border: true,
@@ -46,9 +60,15 @@ Ext.define('PVE.pool.AddVM', {
 		listeners: {
 		    selectionchange: function(model, selected, opts) {
 			var selectedVms = [];
+			var isTransfer = false;
 			selected.forEach(function(vm) {
 			    selectedVms.push(vm.data.vmid);
+			    if (vm.data.pool !== '') {
+				isTransfer = true;
+			    }
 			});
+			transfer.setValue(isTransfer);
+			transferWarning.setHidden(!isTransfer);
 			vmsField.setValue(selectedVms);
 		    },
 		},
@@ -90,15 +110,10 @@ Ext.define('PVE.pool.AddVM', {
 	    ],
 	});
 
-	let transfer = Ext.create('Ext.form.field.Checkbox', {
-	    name: 'transfer',
-	    boxLabel: gettext('Allow Transfer'),
-	    inputValue: 1,
-	    value: 0,
-	});
+
 	Ext.apply(me, {
 	    subject: gettext('Virtual Machine'),
-	    items: [vmsField, vmGrid, transfer],
+	    items: [vmsField, vmGrid, transferWarning, transfer],
 	});
 
 	me.callParent();
-- 
2.39.2





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [pve-devel] [PATCH manager] ui: improve vm/container migration user experience
  2023-09-05 13:51 [pve-devel] [PATCH manager] ui: improve vm/container migration user experience Philipp Hufnagl
@ 2023-09-06  9:18 ` Thomas Lamprecht
  2023-09-08 10:52   ` Philipp Hufnagl
  0 siblings, 1 reply; 3+ messages in thread
From: Thomas Lamprecht @ 2023-09-06  9:18 UTC (permalink / raw)
  To: Proxmox VE development discussion, Philipp Hufnagl

subject is quite confusing, this isn't for what's commonly understood
w.r.t. the "VM/CT migration", i.e., live migration to another host.

You at least need to use the word "pool" somewhere..

Am 05/09/2023 um 15:51 schrieb Philipp Hufnagl:
> After the implementation of fix #474, it has been suggested that
> instead of requiring the user to click a checkbox allowing migration,
> it should be allowed automatically and and a warning should be displayed
> 
> Further it has been discussed to rename the feature from "transfer" to
> "migrate". However and API change would break already implemented usage

Not sure if I'd call that a discussion, I stated:

> We normally use "move" or "migrate", not "transfer", or "reassign" (like for
> moving a guest disk to another guest) and it has some merits to not expand the
> commonly used (parameter) naming scheme to much, but oh well it's already released
> and a naming nit that doesn't matters _that_ much.

And overlooked the "renaming to "migrate" or "migrate from other pool" part
in your reply (while at it, still missing the adding the API default).

This was not intended to be a final instruction to definitively use "migrate"
here, but rather open the discussion for a possible better name, or even keep
that if there's consensus that "transfer" or "reassign" is fine.

> and so it has been decided to call it (for now) transfer everywhere to
> avoid confusion

That again conflicts with your subject message and your statement that
you will rename it. Besides that, by whom has it been decided where?
This again sounds like there was some actual discussion, but I don't
see any.

If you want to keep transfer for now, ok, but do so consistently (e.g., also
in the commit message's subject here then – but still with "pool" mentioned,
otherwise one cannot possible know what this is actually about..)

> 
> Signed-off-by: Philipp Hufnagl <p.hufnagl@proxmox.com>
> ---
>  www/manager6/grid/PoolMembers.js | 29 ++++++++++++++++++++++-------
>  1 file changed, 22 insertions(+), 7 deletions(-)
> 
> diff --git a/www/manager6/grid/PoolMembers.js b/www/manager6/grid/PoolMembers.js
> index 224daca3..d6fa0278 100644
> --- a/www/manager6/grid/PoolMembers.js
> +++ b/www/manager6/grid/PoolMembers.js
> @@ -35,6 +35,20 @@ Ext.define('PVE.pool.AddVM', {
>  	    ],
>  	});
>  
> +	let transferWarning = Ext.create('Ext.form.field.Display', {
> +	    userCls: 'pmx-hint',
> +	    value: gettext('One or more vms or container will be removed from their old pool'),

if you use the word "vms" you'd need to write it as "VMs", but rather:

gettext('Virtual guests are removed from current pools'),

> +	    hidden: true,
> +	});
> +
> +	let transfer = Ext.create('Ext.form.field.Checkbox', {
> +	    name: 'transfer',
> +	    boxLabel: gettext('Allow Transfer'),
> +	    inputValue: 1,
> +	    hidden: true,
> +	    value: 0,
> +	});

no need for this, just add:

extraRequestParams: {
     transfer: 1,
}

to the edit window config.

> +
>  	var vmGrid = Ext.create('widget.grid', {
>  	    store: vmStore,
>  	    border: true,
> @@ -46,9 +60,15 @@ Ext.define('PVE.pool.AddVM', {
>  		listeners: {
>  		    selectionchange: function(model, selected, opts) {
>  			var selectedVms = [];
> +			var isTransfer = false;
>  			selected.forEach(function(vm) {
>  			    selectedVms.push(vm.data.vmid);
> +			    if (vm.data.pool !== '') {

I'd prefer:

if (vm.data.pool?.length) {

as !== '' seems rather brittle.

> +				isTransfer = true;
> +			    }
>  			});
> +			transfer.setValue(isTransfer);
> +			transferWarning.setHidden(!isTransfer);
>  			vmsField.setValue(selectedVms);
>  		    },
>  		},
> @@ -90,15 +110,10 @@ Ext.define('PVE.pool.AddVM', {
>  	    ],
>  	});
>  
> -	let transfer = Ext.create('Ext.form.field.Checkbox', {
> -	    name: 'transfer',
> -	    boxLabel: gettext('Allow Transfer'),
> -	    inputValue: 1,
> -	    value: 0,
> -	});
> +

adding extra empty line here

>  	Ext.apply(me, {
>  	    subject: gettext('Virtual Machine'),
> -	    items: [vmsField, vmGrid, transfer],
> +	    items: [vmsField, vmGrid, transferWarning, transfer],
>  	});
>  
>  	me.callParent();





^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [pve-devel] [PATCH manager] ui: improve vm/container migration user experience
  2023-09-06  9:18 ` Thomas Lamprecht
@ 2023-09-08 10:52   ` Philipp Hufnagl
  0 siblings, 0 replies; 3+ messages in thread
From: Philipp Hufnagl @ 2023-09-08 10:52 UTC (permalink / raw)
  To: Proxmox VE development discussion

On 9/6/23 11:18, Thomas Lamprecht wrote:

> subject is quite confusing, this isn't for what's commonly understood
> w.r.t. the "VM/CT migration", i.e., live migration to another host.
>
> You at least need to use the word "pool" somewhere..
>
> Am 05/09/2023 um 15:51 schrieb Philipp Hufnagl:
>> After the implementation of fix #474, it has been suggested that
>> instead of requiring the user to click a checkbox allowing migration,
>> it should be allowed automatically and and a warning should be displayed
>>
>> Further it has been discussed to rename the feature from "transfer" to
>> "migrate". However and API change would break already implemented usage
> Not sure if I'd call that a discussion, I stated:
>
>> We normally use "move" or "migrate", not "transfer", or "reassign" (like for
>> moving a guest disk to another guest) and it has some merits to not expand the
>> commonly used (parameter) naming scheme to much, but oh well it's already released
>> and a naming nit that doesn't matters _that_ much.
> And overlooked the "renaming to "migrate" or "migrate from other pool" part
> in your reply (while at it, still missing the adding the API default).
>
> This was not intended to be a final instruction to definitively use "migrate"
> here, but rather open the discussion for a possible better name, or even keep
> that if there's consensus that "transfer" or "reassign" is fine.
>
>> and so it has been decided to call it (for now) transfer everywhere to
>> avoid confusion
> That again conflicts with your subject message and your statement that
> you will rename it. Besides that, by whom has it been decided where?
> This again sounds like there was some actual discussion, but I don't
> see any.
>
> If you want to keep transfer for now, ok, but do so consistently (e.g., also
> in the commit message's subject here then – but still with "pool" mentioned,
> otherwise one cannot possible know what this is actually about..)

I spoke with Dominik Csapak of list about this. "transfer" can not 
simply be removed from the API since it would break programs who would 
use it. Therefor we agreed, that renaming would just lead lead to a 
confusing mix of terms.

I thought it would be better to call it "migration" in the patch but I 
will call it "transfer" there as well and also mention "pool"





^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-09-08 10:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-05 13:51 [pve-devel] [PATCH manager] ui: improve vm/container migration user experience Philipp Hufnagl
2023-09-06  9:18 ` Thomas Lamprecht
2023-09-08 10:52   ` Philipp Hufnagl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal