mirror of
https://git.proxmox.com/git/qemu-server
synced 2025-05-01 19:31:13 +00:00
fix: #1075: Restore VM template to VM and try to convert to template.
The restore of a backup from a VM template will first restore the VM and then convert the restored VM back into a template. This automatically performes the steps of the current behaviour, where the user has to manually convert the restored VM back to a template. Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
This commit is contained in:
parent
4fdc1d3dfc
commit
5294c110bb
@ -557,14 +557,21 @@ __PACKAGE__->register_method({
|
||||
PVE::QemuConfig->check_protection($conf, $emsg);
|
||||
|
||||
die "$emsg vm is running\n" if PVE::QemuServer::check_running($vmid);
|
||||
die "$emsg vm is a template\n" if PVE::QemuConfig->is_template($conf);
|
||||
|
||||
my $realcmd = sub {
|
||||
PVE::QemuServer::restore_archive($archive, $vmid, $authuser, {
|
||||
storage => $storage,
|
||||
pool => $pool,
|
||||
unique => $unique,
|
||||
bwlimit => $bwlimit, });
|
||||
bwlimit => $bwlimit,
|
||||
});
|
||||
my $restored_conf = PVE::QemuConfig->load_config($vmid);
|
||||
# Convert restored VM to template if backup was VM template
|
||||
if (PVE::QemuConfig->is_template($restored_conf)) {
|
||||
warn "Convert to template.\n";
|
||||
eval { PVE::QemuServer::template_create($vmid, $restored_conf) };
|
||||
warn $@ if $@;
|
||||
}
|
||||
|
||||
PVE::AccessControl::add_vm_to_pool($vmid, $pool) if $pool;
|
||||
|
||||
|
@ -5904,7 +5904,6 @@ sub restore_update_config_line {
|
||||
return if $line =~ m/^lock:/;
|
||||
return if $line =~ m/^unused\d+:/;
|
||||
return if $line =~ m/^parent:/;
|
||||
return if $line =~ m/^template:/; # restored VM is never a template
|
||||
|
||||
my $dc = PVE::Cluster::cfs_read_file('datacenter.cfg');
|
||||
if (($line =~ m/^(vlan(\d+)):\s*(\S+)\s*$/)) {
|
||||
|
Loading…
Reference in New Issue
Block a user