return ($id_map, $rootuid, $rootgid);
}
+sub userns_command {
+ my ($id_map) = @_;
+ if (@$id_map) {
+ return ['lxc-usernsexec', (map { ('-m', join(':', @$_)) } @$id_map), '--'];
+ }
+ return [];
+}
+
1;
sub restore_archive {
my ($archive, $rootdir, $conf) = @_;
- my $userns_cmd = [];
-
my ($id_map, $rootuid, $rootgid) = PVE::LXC::parse_id_maps($conf);
+ my $userns_cmd = PVE::LXC::userns_command($id_map);
if (@$id_map) {
- $userns_cmd = ['lxc-usernsexec', (map { ('-m', join(':', @$_)) } @$id_map), '--'];
PVE::Tools::run_command(['chown', '-R', "$rootuid:$rootgid", $rootdir]);
}
$task->{hostname} = $conf->{'hostname'} || "CT$vmid";
+ my ($id_map, $rootuid, $rootgid) = PVE::LXC::parse_id_maps($conf);
+ $task->{userns_cmd} = PVE::LXC::userns_command($id_map);
+
PVE::LXC::foreach_mountpoint($conf, sub {
my ($name, $data) = @_;
my $volid = $data->{volume};
my $snapdir = $task->{snapdir};
my $tmpdir = $task->{tmpdir};
- my $tar = ['tar', 'cpf', '-', '--totals',
+ my $userns_cmd = $task->{userns_cmd};
+ my $tar = [@$userns_cmd, 'tar', 'cpf', '-', '--totals',
@$PVE::LXC::COMMON_TAR_FLAGS,
'--one-file-system', '--warning=no-file-ignored'];