[pve-devel] [Patch container 1/2] Also rename MP when CT is converted to template.

Wolfgang Link w.link at proxmox.com
Wed May 23 16:28:52 CEST 2018


Mountpoints should use the same names as rootfs when they converted to a template.
So we also renamed MP.
---
 src/PVE/LXC.pm | 31 +++++++++++++++++++++++--------
 1 file changed, 23 insertions(+), 8 deletions(-)

diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
index 4f9674d..928234a 100644
--- a/src/PVE/LXC.pm
+++ b/src/PVE/LXC.pm
@@ -869,17 +869,32 @@ sub template_create {
 
     my $storecfg = PVE::Storage::config();
 
-    my $rootinfo = PVE::LXC::Config->parse_ct_rootfs($conf->{rootfs});
-    my $volid = $rootinfo->{volume};
+    PVE::LXC::Config->foreach_mountpoint($conf, sub {
+	my ($ms, $mountpoint) = @_;
 
-    die "Template feature is not available for '$volid'\n"
-	if !PVE::Storage::volume_has_feature($storecfg, 'template', $volid);
+	my $volume = $ms eq "rootfs" ?
+	    PVE::LXC::Config->parse_ct_rootfs($conf->{$ms}) :
+	    PVE::LXC::Config->parse_ct_mountpoint($conf->{$ms});
+	my $volid = $volume->{volume};
 
-    PVE::Storage::activate_volumes($storecfg, [$volid]);
+	die "Template feature is not available for '$volid'\n"
+	    if !PVE::Storage::volume_has_feature($storecfg, 'template', $volid);
+    });
 
-    my $template_volid = PVE::Storage::vdisk_create_base($storecfg, $volid);
-    $rootinfo->{volume} = $template_volid;
-    $conf->{rootfs} = PVE::LXC::Config->print_ct_mountpoint($rootinfo, 1);
+    PVE::LXC::Config->foreach_mountpoint($conf, sub {
+	my ($ms, $mountpoint) = @_;
+
+	my $volume = $ms eq "rootfs" ?
+	    PVE::LXC::Config->parse_ct_rootfs($conf->{$ms}) :
+	    PVE::LXC::Config->parse_ct_mountpoint($conf->{$ms});
+	my $volid = $volume->{volume};
+
+	PVE::Storage::activate_volumes($storecfg, [$volid]);
+
+	my $template_volid = PVE::Storage::vdisk_create_base($storecfg, $volid);
+	$volume->{volume} = $template_volid;
+	$conf->{$ms} = PVE::LXC::Config->print_ct_mountpoint($volume, $ms eq "rootfs");
+    });
 
     PVE::LXC::Config->write_config($vmid, $conf);
 }
-- 
2.11.0





More information about the pve-devel mailing list