]> git.proxmox.com Git - pve-container.git/commitdiff
restore lxc.* entries once
authorFabian Grünbichler <f.gruenbichler@proxmox.com>
Wed, 25 Sep 2019 12:35:04 +0000 (14:35 +0200)
committerFabian Grünbichler <f.gruenbichler@proxmox.com>
Mon, 30 Sep 2019 09:33:54 +0000 (11:33 +0200)
either via recover_config, OR via restore_configuration. non-root behaviour stays the same.

Tested-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
src/PVE/API2/LXC.pm
src/PVE/LXC/Create.pm

index 07280fb359fb134fbbdca14bd08748e1b1f52a14..28c90473d2b7693820f9f93b63134793d1372ebb 100644 (file)
@@ -353,11 +353,11 @@ __PACKAGE__->register_method({
                        my $orig_conf;
                        ($orig_conf, $orig_mp_param) = PVE::LXC::Create::recover_config($archive);
                        $was_template = delete $orig_conf->{template};
-                       # When we're root call 'restore_configuration' with ristricted=0,
+                       # When we're root call 'restore_configuration' with restricted=0,
                        # causing it to restore the raw lxc entries, among which there may be
                        # 'lxc.idmap' entries. We need to make sure that the extracted contents
                        # of the container match up with the restored configuration afterwards:
-                       $conf->{lxc} = [grep { $_->[0] eq 'lxc.idmap' } @{$orig_conf->{lxc}}];
+                       $conf->{lxc} = $orig_conf->{lxc};
                    }
                }
                if ($storage_only_mode) {
index a46a50c268e3222f3c1a9ff4028c611975e09964..241ca88820b306c000676bc18e858f638edbb0f5 100644 (file)
@@ -176,18 +176,14 @@ sub restore_configuration {
            # storage supports creating a template there
            next if $key =~ /^template$/;
 
-           if ($key eq 'lxc') {
+           if ($key eq 'lxc' && $restricted) {
                my $lxc_list = $oldconf->{'lxc'};
-               if ($restricted) {
-                   warn "skipping custom lxc options, restore manually as root:\n";
-                   warn "--------------------------------\n";
-                   foreach my $lxc_opt (@$lxc_list) {
-                       warn "$lxc_opt->[0]: $lxc_opt->[1]\n"
-                   }
-                   warn "--------------------------------\n";
-               } else {
-                   @{$conf->{$key}} = (@$lxc_list, @{$conf->{$key}});
+               warn "skipping custom lxc options, restore manually as root:\n";
+               warn "--------------------------------\n";
+               foreach my $lxc_opt (@$lxc_list) {
+                   warn "$lxc_opt->[0]: $lxc_opt->[1]\n"
                }
+               warn "--------------------------------\n";
                next;
            }