On 17.05.21 11:03, Lorenz Stechauner wrote:
> it is now necessary for storages to support the 'rootdir' content
> in order to create/start containers on them. all native storage
> plugins already report the rootdir content correctly.
> 
> Signed-off-by: Lorenz Stechauner <l.stechau...@proxmox.com>
> ---

I'm missing the description of changes from v1 -> v2 here...

>  src/PVE/LXC.pm | 30 ++++++++++++------------------
>  1 file changed, 12 insertions(+), 18 deletions(-)
> 
> diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm
> index 7e6f378..75e1c20 100644
> --- a/src/PVE/LXC.pm
> +++ b/src/PVE/LXC.pm
> @@ -1682,15 +1682,16 @@ sub __mountpoint_mount {
>               }
>           };
>           my $use_loopdev = 0;
> -         if ($scfg->{path}) {
> -             $mounted_dev = run_with_loopdev($domount, $path, $readonly);
> -             $use_loopdev = 1;
> -         } elsif ($scfg->{type} eq 'drbd' || $scfg->{type} eq 'lvm' ||
> -                  $scfg->{type} eq 'rbd' || $scfg->{type} eq 'lvmthin') {
> -             $mounted_dev = $path;
> -             &$domount($path);
> +         if ($scfg->{content}->{rootdir}) {
> +             if ($scfg->{path}) {
> +                 $mounted_dev = run_with_loopdev($domount, $path, $readonly);
> +                 $use_loopdev = 1;
> +             } else {
> +                 $mounted_dev = $path;
> +                 &$domount($path);
> +             }
>           } else {
> -             die "unsupported storage type '$scfg->{type}'\n";
> +             die "storage type '$scfg->{type}' does not support 
> containers\n";
>           }
>           return wantarray ? ($path, $use_loopdev, $mounted_dev) : $path;
>       } else {
> @@ -1871,7 +1872,7 @@ sub alloc_disk {
>  
>      eval {
>       my $do_format = 0;
> -     if ($scfg->{type} eq 'dir' || $scfg->{type} eq 'nfs' || $scfg->{type} 
> eq 'cifs' ) {
> +     if ($scfg->{content}->{rootdir} && $scfg->{path}) {
>           if ($size_kb > 0) {
>               $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 
> 'raw',
>                                                  undef, $size_kb);
> @@ -1882,21 +1883,14 @@ sub alloc_disk {
>               $needs_chown = 1;
>           }
>       } elsif ($scfg->{type} eq 'zfspool') {
> -
>           $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 
> 'subvol',
>                                              undef, $size_kb);
>           $needs_chown = 1;
> -     } elsif ($scfg->{type} eq 'drbd' || $scfg->{type} eq 'lvm' || 
> $scfg->{type} eq 'lvmthin') {
> -
> -         $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 
> 'raw', undef, $size_kb);
> -         $do_format = 1;
> -
> -     } elsif ($scfg->{type} eq 'rbd') {
> -
> +     } elsif ($scfg->{content}->{rootdir}) {
>           $volid = PVE::Storage::vdisk_alloc($storecfg, $storage, $vmid, 
> 'raw', undef, $size_kb);
>           $do_format = 1;
>       } else {
> -         die "unable to create containers on storage type '$scfg->{type}'\n";
> +         die "storage type '$scfg->{type}' does not supoort containers\n";
>       }
>       format_disk($storecfg, $volid, $rootuid, $rootgid) if $do_format;
>      };
> 



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to