]> git.proxmox.com Git - pve-container.git/blobdiff - src/PVE/LXC.pm
Also free unused volumes owned by a container on removal
[pve-container.git] / src / PVE / LXC.pm
index b4ffc9bdc5508c3f058db6330b2bf0971b7c09c3..fbe736e7f37ae21b28e0240bba5925e76de2debd 100644 (file)
@@ -206,7 +206,7 @@ sub vmstatus {
            $d->{disk} = 0;
            # use 4GB by default ??
            if (my $rootfs = $conf->{rootfs}) {
-               my $rootinfo = PVE::LXC::Config->parse_ct_rootfs($rootfs);
+               my $rootinfo = PVE::LXC::Config->parse_volume('rootfs', $rootfs);
                $d->{maxdisk} = $rootinfo->{size} || (4*1024*1024*1024);
            } else {
                $d->{maxdisk} = 4*1024*1024*1024;
@@ -687,7 +687,7 @@ sub update_lxc_config {
     die "missing 'rootfs' configuration\n"
        if !defined($conf->{rootfs});
 
-    my $mountpoint = PVE::LXC::Config->parse_ct_rootfs($conf->{rootfs});
+    my $mountpoint = PVE::LXC::Config->parse_volume('rootfs', $conf->{rootfs});
 
     $raw .= "lxc.rootfs.path = $dir/rootfs\n";
 
@@ -832,7 +832,7 @@ sub delete_mountpoint_volume {
 sub destroy_lxc_container {
     my ($storage_cfg, $vmid, $conf, $replacement_conf) = @_;
 
-    PVE::LXC::Config->foreach_mountpoint($conf, sub {
+    PVE::LXC::Config->foreach_volume_full($conf, {include_unused => 1}, sub {
        my ($ms, $mountpoint) = @_;
        delete_mountpoint_volume($storage_cfg, $vmid, $mountpoint->{volume});
     });
@@ -1163,7 +1163,7 @@ sub template_create {
 
     my $storecfg = PVE::Storage::config();
 
-    PVE::LXC::Config->foreach_mountpoint($conf, sub {
+    PVE::LXC::Config->foreach_volume($conf, sub {
        my ($ms, $mountpoint) = @_;
 
        my $volid = $mountpoint->{volume};
@@ -1172,7 +1172,7 @@ sub template_create {
            if !PVE::Storage::volume_has_feature($storecfg, 'template', $volid);
     });
 
-    PVE::LXC::Config->foreach_mountpoint($conf, sub {
+    PVE::LXC::Config->foreach_volume($conf, sub {
        my ($ms, $mountpoint) = @_;
 
        my $volid = $mountpoint->{volume};
@@ -1199,8 +1199,7 @@ sub check_ct_modify_config_perm {
        } elsif ($opt eq 'rootfs' || $opt =~ /^mp\d+$/) {
            $rpcenv->check_vm_perm($authuser, $vmid, $pool, ['VM.Config.Disk']);
            return if $delete;
-           my $data = $opt eq 'rootfs' ? PVE::LXC::Config->parse_ct_rootfs($newconf->{$opt})
-                                       : PVE::LXC::Config->parse_ct_mountpoint($newconf->{$opt});
+           my $data = PVE::LXC::Config->parse_volume($opt, $newconf->{$opt});
            raise_perm_exc("mount point type $data->{type} is only allowed for root\@pam")
                if $data->{type} ne 'volume';
        } elsif ($opt eq 'memory' || $opt eq 'swap') {
@@ -1237,7 +1236,7 @@ sub umount_all {
 
     my $res = 1;
 
-    PVE::LXC::Config->foreach_mountpoint_reverse($conf, sub {
+    PVE::LXC::Config->foreach_volume_full($conf, {'reverse' => 1}, sub {
        my ($ms, $mountpoint) = @_;
 
        my $volid = $mountpoint->{volume};
@@ -1278,7 +1277,7 @@ sub mount_all {
     my (undef, $rootuid, $rootgid) = parse_id_maps($conf);
 
     eval {
-       PVE::LXC::Config->foreach_mountpoint($conf, sub {
+       PVE::LXC::Config->foreach_volume($conf, sub {
            my ($ms, $mountpoint) = @_;
 
            $mountpoint->{ro} = 0 if $ignore_ro;
@@ -1885,7 +1884,7 @@ sub create_disks {
        my (undef, $rootuid, $rootgid) = PVE::LXC::parse_id_maps($conf);
        my $chown_vollist = [];
 
-       PVE::LXC::Config->foreach_mountpoint($settings, sub {
+       PVE::LXC::Config->foreach_volume($settings, sub {
            my ($ms, $mountpoint) = @_;
 
            my $volid = $mountpoint->{volume};
@@ -1949,7 +1948,7 @@ sub update_disksize {
        }
     };
 
-    PVE::LXC::Config->foreach_mountpoint($conf, $update_mp);
+    PVE::LXC::Config->foreach_volume($conf, $update_mp);
 
     return $changes;
 }