]> git.proxmox.com Git - pve-container.git/commitdiff
Refactor content type check into sub
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 16 Mar 2016 09:53:13 +0000 (10:53 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Wed, 16 Mar 2016 10:21:23 +0000 (11:21 +0100)
src/PVE/LXC/Config.pm

index ef4c24b131e9c9b53460b11db0dc6faebfda1d8e..a5c756f5416c7493ef1ac0d731fb9c60dd744245 100644 (file)
@@ -805,6 +805,14 @@ sub update_pct_config {
     }
 
     my $used_volids = {};
+    my $check_content_type = sub {
+       my ($mp) = @_;
+       my $sid = PVE::Storage::parse_volume_id($mp->{volume});
+       my $scfg = PVE::Storage::config();
+       my $storage_config = PVE::Storage::storage_config($scfg, $sid);
+       die "storage '$sid' does not allow content type 'rootdir' (Container)\n"
+           if !$storage_config->{content}->{rootdir};
+    };
 
     foreach my $opt (keys %$param) {
        my $value = $param->{$opt};
@@ -850,11 +858,7 @@ sub update_pct_config {
            my $old = $conf->{$opt};
            my $mp = PVE::LXC::Config->parse_ct_mountpoint($value);
            if ($mp->{type} eq 'volume') {
-               my $sid = PVE::Storage::parse_volume_id($mp->{volume});
-               my $scfg = PVE::Storage::config();
-               my $storage_config = PVE::Storage::storage_config($scfg, $sid);
-               die "storage '$sid' does not allow content type 'rootdir' (Container)\n"
-                   if !$storage_config->{content}->{rootdir};
+               &$check_content_type($mp);
                $used_volids->{$mp->{volume}} = 1;
            }
            $conf->{$opt} = $value;
@@ -872,11 +876,7 @@ sub update_pct_config {
            $conf->{$opt} = $value;
            my $mp = PVE::LXC::Config->parse_ct_rootfs($value);
            if ($mp->{type} eq 'volume') {
-               my $sid = PVE::Storage::parse_volume_id($mp->{volume});
-               my $scfg = PVE::Storage::config();
-               my $storage_config = PVE::Storage::storage_config($scfg, $sid);
-               die "storage '$sid' does not allow content type 'rootdir' (Container)\n"
-                   if !$storage_config->{content}->{rootdir};
+               &$check_content_type($mp);
                $used_volids->{$mp->{volume}} = 1;
            }
            if (defined($old)) {