Thanks to Stefan and Thomas for the suggestions. Changes from v1: * update parameter description * warn instead of die
Signed-off-by: Fabian Ebner <f.eb...@proxmox.com> --- PVE/API2/Qemu.pm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm index 8be0b7b..b355051 100644 --- a/PVE/API2/Qemu.pm +++ b/PVE/API2/Qemu.pm @@ -3257,7 +3257,7 @@ __PACKAGE__->register_method({ }), online => { type => 'boolean', - description => "Use online/live migration.", + description => "Use online/live migration if VM is running. Ignored if VM is stopped.", optional => 1, }, force => { @@ -3318,9 +3318,6 @@ __PACKAGE__->register_method({ my $vmid = extract_param($param, 'vmid'); - raise_param_exc({ targetstorage => "Live storage migration can only be done online." }) - if !$param->{online} && $param->{targetstorage}; - raise_param_exc({ force => "Only root may use this option." }) if $param->{force} && $authuser ne 'root@pam'; @@ -3341,8 +3338,14 @@ __PACKAGE__->register_method({ if (PVE::QemuServer::check_running($vmid)) { die "cant migrate running VM without --online\n" if !$param->{online}; + } else { + warn "VM isn't running. Doing offline migration instead." if $param->{online}; + $param->{online} = 0; } + raise_param_exc({ targetstorage => "Live storage migration can only be done online." }) + if !$param->{online} && $param->{targetstorage}; + my $storecfg = PVE::Storage::config(); if( $param->{targetstorage}) { -- 2.20.1 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel