[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